2011-01-05 4 views
2

MenuItemを押したときにMenuItemの背景を変更したいと思います。IsPressedイベントのMenuItemのBackgroundプロパティを設定できません。

<Style x:Key="{x:Type MenuItem}" TargetType="MenuItem"> 
    <Style.Triggers> 
     <Trigger Property="MenuItem.IsPressed" Value="True"> 
      <Setter Property="MenuItem.Background" Value="#FFE389" /> 
      <Setter Property="MenuItem.BorderBrush" Value="#C2762B" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

トリガーは機能していないようですが、これをやってみました。トリガーは間違っていますか?

更新:それはTopLevelMenuItemsのために動作しますがTopLevelMenuHeaderItemsのために動作しません:それはIsMouseOverが、IsPressedが

アップデート2を動作するようには思えないイベントのために動作します。 alt text

答えて

1

EDIT

<Style x:Key="MyStyle" TargetType="{x:Type MenuItem}"> 
    <Style.Triggers> 
     <Trigger Property="IsPressed" Value="True"> 
      <Setter Property="Background" Value="#FFE389" /> 
      <Setter Property="BorderBrush" Value="#C2762B" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
... MenuItemとプロパティ名を前置きし、あなたのTargetTypex:Key構文を変更しない...これを試してください:あなたの更新情報に基づいて

を取りますどのようにデフォルトのMenuItemconstructed via XAMLであるかを見てください。これにより、MenuItemのさまざまな部分のスタイリングを提供するために必要な場所が表示されます。トップレベルとサブレベルの両方のヘッダーとアイテムを扱うMenuItemスタイル内のRoleプロパティの使用に注意してください。

+1

Prefaceの 'MenuItem'も削除されません。 –

+0

@Proximo追加の変更を追加しました。 –

+0

@Proximo MSDNのMenuItemのデフォルトスタイルへの参照を追加しました。 –

関連する問題