资源元素还是USERCORTROL?
-
20-09-2019 - |
题
我有一些XAML绘制徽标,我想在其他各种XAML文件中重复使用此徽标(它没有UI,不需要代码)。徽标XAML的最高级别是 Canvas
物品。
在其他XAML文件中使用徽标是最好将此徽标定义为一个元素 ResourceDictionary
或创建一个 UserControl
?
这似乎很容易 UserControl
, 但是,我想加入XAMLReader加载XAML文件,以便我更喜欢使用资源,以便可以在XAML中指定这些资源。似乎可以存储诸如 Canvas
在一个 ResourceDictionary
但是我不确定如何引用它们。
例如,我可以将徽标定义为 ResourceDictionary
元素如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
</ResourceDictionary>
但是我该怎么使用 Logo
在我的其他XAML文件中 - 也许我对资源有错误的想法?
解决方案
我发现解决方案是视觉刷。我可以在资源重新计算中定义这一点,如下所示:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
<VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
然后只需在必要时使用此VisualBrush即可。
其他提示
通常,如果您想为此制作资源词典,那么您会制作一种样式。然后,您可以在您希望的任何其他XAML文件中放下控件,并用资源对其进行样式。
但是,UserControl可能是一个更容易的选择,因为这将是一个简单,可重复使用的元素,您可以落入任何地方。
不隶属于 StackOverflow