我有一个我需要在我的应用程序中使用的图像。我想在资源字典中只定义一次图像,并让我的其他xaml文件就是那个定义。我能解决的一件事是如何引用定义为xaml元素的内容而不是xaml属性中的属性。
这是我的ResourceDictionary
# resourceDictionary.xaml
<LinearGradientBrush x:Key="MyGradient" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#A5000000" Offset="0"/>
<GradientStop Color="#00000000" Offset="1"/>
</LinearGradientBrush>
<Image x:Key="MyImage" Source="MyGlyph.png" Width="20" Height="20" />
所以在我的xaml中,我知道如何将渐变引用为控件对象的属性
<TextBlock Text="Sample Text" Background="{DynamicResource MessageGradient}"/>
但我想弄清楚他如何引用Image是一个完整的控制对象。这个例子只是创建了一个按钮,在按钮中有“{DynamicResource MyImage}”而不是图像。
<!-- Want MyImage to be content of the button -->
<Button>
{DynamicResource MyImage}
</Button>
有没有一种简单的方法可以做到这一点,或者我必须创建一个仅包含我的图像的控件模板,然后在我的xaml中有一个使用控件模板的图像标签?
答案 0 :(得分:5)
由于您希望图像是按钮的内容,因此您应该能够将其绑定到Content
属性:
<Button Content="{DynamicResource MyImage}" />
答案 1 :(得分:3)
<!-- Want MyImage to be content of the button -->
<Button>
<DynamicResource ResourceKey="MyImage"/>
</Button>
答案 2 :(得分:0)
如果您尝试将图像作为任何控件的背景
<Button Content="My Button">
<Button.Background>
<ImageBrush ImageSource="MyGlyph.png"/>
</Button.Background>
</Button>