2011-08-10 17 views
1

menuitemの背景の不透明度を0.0に設定するにはどうすればよいですか?1.0の不透明度のテキストが表示されますか?MenuItem背景の不透明ですが、テキストはありませんか?

+1

Menu.Resourcesにこれを貼り付けhttp://stackoverflow.com/questions/1673132/wpf-contextmenu-design-how-to-set-background-in-wpf-menuitem –

+0

いやああ、それは働いた:D – Seva

答えて

3

これを行うには、背景色をアルファチャンネルなしで設定する必要があります(最初の2桁は16進数で0x00000000です)。これにより、背景色が完全に透明になります。次に、テキストは、アルファチャンネルのデフォルトの0xFFの色でなければなりません。

+0

あなたはいくつかの擬似コードをお願いできますか? – Seva

2

は、この質問を参照してください:WPF Transparent menu

あなたはMenuItemのテンプレートを上書きする必要があります。コピー/あなたWindow.Resourcesまたは

<ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type MenuItem}"> 
    <Border Name="Border" > 
     <Grid> 
     <ContentPresenter 
      Margin="6,3,6,3" 
      ContentSource="Header" 
      RecognizesAccessKey="True" /> 
     <Popup 
      Name="Popup" 
      Placement="Bottom" 
      IsOpen="{TemplateBinding IsSubmenuOpen}" 
      AllowsTransparency="True" 
      Focusable="False" 
      PopupAnimation="Fade"> 
      <Border 
      Name="SubmenuBorder" 
      SnapsToDevicePixels="True" 
      Background="Transparent"> 
      <StackPanel 
       IsItemsHost="True" 
       KeyboardNavigation.DirectionalNavigation="Cycle" /> 
      </Border> 
     </Popup> 
     </Grid> 
    </Border> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsSuspendingPopupAnimation" Value="true"> 
     <Setter TargetName="Popup" Property="PopupAnimation" Value="None"/> 
     </Trigger> 
     <Trigger Property="IsHighlighted" Value="true"> 
     <Setter TargetName="Border" Property="Background" Value="#C0C0C0"/> 
     <Setter TargetName="Border" Property="BorderBrush" Value="Transparent"/> 
     </Trigger> 
     <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True"> 
     <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,4,4"/> 
     <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,0,0,3"/> 
     </Trigger> 
     <Trigger Property="IsEnabled" Value="False"> 
     <Setter Property="Foreground" Value="#888888"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
    </ControlTemplate> 
+0

いいえ...背景がまだ灰色であるためです。 – Seva

+0

@Seva私の更新された回答を参照してください:) – Rachel

+0

レイチェル、私はこの例を使用していますが、menuitemに子供がいる場合は、同じ方法でペイントされません、その権利を取得する方法を見つけることができません。上記をコピーしてx:Key = "{x:Static MenuItem.SubmenuHeaderTemplateKey}"に設定しましたが、書式設定が正しくありません –

関連する問題