一个资源项是否只能同时用于一个元素? 例如:
[XAML]
<Window.Resources>
<Image x:Key="DockImage" Source="ico/pin.gif"/>
<Image x:Key="UndockImage" Source="ico/pinHorizontal.gif"/>
</Window.Resources>
和按钮:
<Button Width="26" Name="solutionButton" Click="eventname">
<DynamicResource ResourceKey="DockImage"/>
</Button>
<Button Width="26" Name="soundButton" Click="eventname2">
<DynamicResource ResourceKey="DockImage"/>
</Button>
它们的图像在运行时更改为UndockImage,但Image仅在其中一个按钮上显示。 我可以为DockImage和UndockImage增加Image键,但我认为这将占用2倍的内存。是否可以将一个资源键用于一个对象(同时)?
答案 0 :(得分:1)
任何来自UIElement
的内容都只能一次显示在一个地方。您不应直接定义Image
资源,这是用于显示图像的控件。相反,使用一些ImageSource
派生类,例如BitmapImage
,它代表内存中的图像。
<Window.Resources>
<BitmapImage x:Key="DockImage" UriSource="ico/pin.gif"/>
<BitmapImage x:Key="UndockImage" UriSource="ico/pinHorizontal.gif"/>
</Window.Resources>
<Button Width="26" Name="solutionButton" Click="eventname">
<Image Source="{StaticResource DockImage}"/>
</Button>
<Button Width="26" Name="soundButton" Click="eventname2">
<Image Source="{StaticResource DockImage}"/>
</Button>