我有一些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可能是一个更容易的选择,因为这将是一个简单,可重复使用的元素,您可以落入任何地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top