我有一些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>
但是如何在我的其他XAML文件中使用此Logo
- 也许我对资源有错误的想法?
答案 0 :(得分:1)
我发现解决方案是VisualBrush。我可以在ResourceDictionary中定义它,如下所示:
<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。
答案 1 :(得分:0)
通常情况下,如果要为此创建资源字典,则需要创建样式。然后,您可以删除一个控件,并使用您的资源在您希望的任何其他xaml文件中设置它。
然而,UserControl可能是一个更容易的选择,因为它可以是一个简单,可重复使用的元素,你可以放在任何地方。