2010-10-27 5 views
1

J'ai actuellement le menu suivant:WPF Menu Transparent

 <Menu Grid.Row="1" Margin="3" Background="Transparent"> 
     <MenuItem Name="mnuFile" Header="File" Background="#28FFAE04" Foreground="#FFFED528"> 
      <MenuItem Name="mnuSettings" Header="Settings" Background="#28FFAE04" Foreground="#FFFED528" /> 
      <MenuItem Name="mnuExit" Header="Exit" Background="#28FFAE04" Foreground="#FFFED528" /> 
     </MenuItem> 
     <MenuItem Name="mnuView" Header="View" Background="#28FFAE04" Foreground="#FFFED528" /> 
     <MenuItem Name="mnuAbout" Header="About" Background="#28FFAE04" Foreground="#FFFED528" /> 
    </Menu> 

Je ne peux pas comprendre comment faire la partie qui tombe du texte ressemblant à flottant semi-transparent ou complètement transparent. Alors que je peux voir la forme en dessous.

Toute aide serait appréciée. Merci!

Répondre

4

Pour ce faire, vous devrez modifier votre modèle MenuItem. Le plus simple changement de modèle qui permet d'atteindre ce que vous voulez est quelque chose comme ceci:

<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> 

Pour plus de personnalisation, je vous recommande d'utiliser Blend pour modifier vos styles/modèles ou en utilisant des styles simples de Kaxaml comme point de départ de votre modes.

+0

Vous êtes génial! Merci! – tcables