WPF一个元素的一个资源?

时间:2012-08-13 17:54:14

标签: wpf

一个资源项是否只能同时用于一个元素? 例如:

[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倍的内存。是否可以将一个资源键用于一个对象(同时)?

1 个答案:

答案 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>