2012-01-09 3 views
3

MouseOverでMenuItemの色を変更したいと思います。私はまた、丸みのあるボーダー、イメージとtextBoxが必要です。スタイルを設定すると、mouseOverEventだけが何もしていないので、背景は変わりません。私のコードは:MouseOverでMenuItemの色を変更します。

<Style x:Key="BaseStyle" TargetType="MenuItem"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="true"> 
       <Setter Property="Background" Value="#0a99f3" /> 
      </Trigger> 
      <Trigger Property="IsKeyboardFocusWithin" Value="true"> 
       <Setter Property="Background" Value="#0a99f3" /> 
      </Trigger> 
     </Style.Triggers> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type MenuItem}"> 
        <Grid> 
         <Border Name="MainBorder" BorderThickness="2,2,2,0" CornerRadius="8,8,8,8" Margin="0,0,1,0" BorderBrush="AliceBlue"> 

          <Grid> 
           <TextBlock Text="Info" Margin="30,10,0,0" FontFamily="Arial" FontSize="14" FontWeight="Bold" /> 
           <Image Width="15" Height="15" Source="menu.PNG" Margin="-100,0,0,0" /> 
          </Grid> 
         </Border> 

        </Grid> 
       </ControlTemplate> 

      </Setter.Value> 
     </Setter> 

    </Style>  

私が紛失していることを知っている人。ありがとう!

答えて

4

テンプレートを上書きしますが、その中の任意の場所の背景色を使用しないため、値が適用されません。

は、あなたはとてもプロパティは効果がありませんことを変え、あなたのテンプレート内の任意の場所に Backgroundを結合していないあなたのMenuItemテンプレート

<ControlTemplate TargetType="{x:Type MenuItem}"> 
    <Grid Background="{TemplateBinding Background}"> 
+0

ありがとうございます!今それは動作します... MenuItemだけ矩形であり、それは私に丸みのあるボーダーを示しています。私は色を付けるために丸い境界線だけを見たいと思う。これで私を助けることができますか? – user599977

+0

@ user599977 'Grid'の代わりに' Border'オブジェクトの背景を設定してください – Rachel

+0

ありがとう!!!それは大丈夫です! – user599977

0

に背景色を設定します。

関連する問題