2017-09-07 9 views
0

私は複数のコントロールのスタイルを一度に使用できるように、私のコントロールにwpfスタイルを使用しています。普段はうまくいきます。たとえば、私はsaveButtonStyleを作成し、アプリケーションのすべての保存ボタンに適用します。しかし、それはMenuItemsで動作しません。 私はアイテムの隣にアイコンを含む私のmenuitemsのためのスタイルを作った。 これは1回のスクリーンショットです。 WPFスタイルは複数のコントロールで動作しません。

DatagridにはContextMenuがあり、そこには複数のメニュー項目があります。この場合、アラーム設定に注意してください。それはアイコンを持っています。このSet Alarm Menu項目は、この項目の隣にある別のメニューDataGridにもあります。私は1つ が、それは enter image description here

あまりにも表示されますが、私は右のアイコンが消えて、他のデータグリッドに戻ってクリックして文句を言わない戻ってきたときに問題があることをクリックすると。これは、ここで enter image description here

をスクリーンショットである私はそれがなぜ起こるか

<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}"> 
      <Setter Property="Icon"> 
       <Setter.Value> 
        <Image Source="Content/AlertIcon.png" Width="20" Height="20" /> 
       </Setter.Value> 
      </Setter> 
     </Style> 

そして、ここでは、私は私のコントロール

<MenuItem x:Name="customerContextMenuSetAlarm" Header="SetAlarm" Style="{StaticResource menuItemAlert}" Click="customerContextMenuSetAlarm_Click"/> 

にそれを適用する方法であるあなたが知っていますか作られたスタイルですか?

+0

私はさらにスタイルを適用するためにDynamicResourceを試しました。それは動作しません –

答えて

2

スタイルmenuItemAlertは、Imageのインスタンスを1つだけ作成し、1か所にしか表示できません。これを克服するためには、そのための別の非共有リソースを作成してくださいImage

<Image x:Key="AlertIcon" x:Shared="False" Source="Content/AlertIcon.png" Width="20" Height="20" /> 

<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}"> 
    <Setter Property="Icon" Value="{StaticResource AlertIcon}"/> 
</Style> 
+0

ワウは、高速かつ正確だった。ありがとう。それは今や意味をなさない。 –

関連する問題