1

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

[xml]

<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,但图像仅显示在这些按钮之一上。我可以将 DockImage 和 UndockImage 的 Image 键相乘,但我认为这将占用 2 倍以上的内存。一个资源键是否可以(同时)用于一个对象?

4

1 回答 1

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>
于 2012-08-13T17:59:38.353 回答