2016-09-23 8 views
1

私はResourceDictionaryを持っており、WPFアプリケーション内にはCanvasのアイコンがたくさんあります。これらのアイコンを複数のフォームの1つに表示したい。しかし、何らかの理由でResourceDictionaryからCanvasをロードすると、リスト要素が最後にレンダリングされた場合に限り、1回だけ表示されます。何故ですか?ResourceDictionのXAML Canvasを1回だけ表示できますか?

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Canvas x:Key="ValueBox" Width="473.8" Height="473.8"> 
     <Canvas> 
      <Path Fill="#000000"> 
       <Path.Data> 
        <PathGeometry Figures="M454.8 111.7c0-1.8-0.4-3.6-1.2-5.3c-1.6-3.4-4.7-5.7-8.1-6.4L241.8 1.2c-3.3-1.6-7.2-1.6-10.5 0L25.6 100.9 c-4 1.9-6.6 5.9-6.8 10.4v0.1c0 0.1 0 0.2 0 0.4V362c0 4.6 2.6 8.8 6.8 10.8l205.7 99.7c0.1 0 0.1 0 0.2 0.1 c0.3 0.1 0.6 0.2 0.9 0.4c0.1 0 0.2 0.1 0.4 0.1c0.3 0.1 0.6 0.2 0.9 0.3c0.1 0 0.2 0.1 0.3 0.1c0.3 0.1 0.7 0.1 1 0.2 c0.1 0 0.2 0 0.3 0c0.4 0 0.9 0.1 1.3 0.1c0.4 0 0.9 0 1.3-0.1c0.1 0 0.2 0 0.3 0c0.3 0 0.7-0.1 1-0.2c0.1 0 0.2-0.1 0.3-0.1 c0.3-0.1 0.6-0.2 0.9-0.3c0.1 0 0.2-0.1 0.4-0.1c0.3-0.1 0.6-0.2 0.9-0.4c0.1 0 0.1 0 0.2-0.1l206.3-100c4.1-2 6.8-6.2 6.8-10.8 V112C454.8 111.9 454.8 111.8 454.8 111.7z M236.5 25.3l178.4 86.5l-65.7 31.9L170.8 57.2L236.5 25.3z M236.5 198.3L58.1 111.8 l85.2-41.3L321.7 157L236.5 198.3z M42.8 131.1l181.7 88.1v223.3L42.8 354.4V131.1z M248.5 442.5V219.2l85.3-41.4v58.4 c0 6.6 5.4 12 12 12s12-5.4 12-12v-70.1l73-35.4V354L248.5 442.5z" FillRule="NonZero"/> 
       </Path.Data> 
      </Path> 
     </Canvas> 
    </Canvas> 
</ResourceDictionary> 

私は、リスト内の特定のアイテムのアイコンとしてリスト内に表示しようとしています。

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Images/VectorIcons.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 

...

<DataTemplate DataType="{x:Type model:SomeContainerClass}"> 
    <StackPanel Orientation="Horizontal" Margin="0,2,0,2"> 
     <Viewbox Width="16" Height="16"> 
      <ContentControl Content="{StaticResource ValueBox}"/> 
     </Viewbox> 
    </StackPanel> 
</DataTemplate> 

同時に、私が直接(フォームでViewbox右中)ウィンドウのXAMLに同じキャンバスを挿入すると、それはすべてのリスト項目について表示されますが、私がリソースからそれを表示しようとしているときではありません。

+0

リソースの共有属性を試しましたか? https://msdn.microsoft.com/en-us/library/aa970778%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 – tym32167

+0

@ tym32167共有属性について完全に忘れました!ありがとう、それは働いた! – user3223738

答えて

0

これを実証しました。追加するのを忘れましたShared attribute

@ tym32167のおかげで!

+0

これを将来の読者のための回答としてマークすることができます。 – tym32167

関連する問題