1

1 つのリソース アイテムは、同時に 1 つの要素に対してのみ使用できますか? 例えば:

[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 に変更されますが、画像はこれらのボタンの 1 つにのみ表示されます。DockImage と UndockImage の両方の Image キーを増やすことができますが、これには 2 倍のメモリが必要になると思います。1 つのオブジェクトに対して 1 つのリソース キーを (同時に) 使用できますか?

4

1 に答える 1

1

から派生しUIElementたものは、一度に 1 つの場所でしか表示できません。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 に答える