2010-10-27 102 views
1

目前,我有以下菜單:WPF透明菜單

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

我無法弄清楚如何使下拉半透明或全透明類似於浮動文本的部分。以便我可以看到下面的表單。

任何幫助,將不勝感激。 謝謝!

回答

4

要做到這一點,您需要更改您的MenuItem模板。即達到你想要什麼,最簡單的模板變化是這樣的:

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

需要更多定製,我推薦使用Blend編輯您的樣式/模板或使用Kaxaml的簡單風格爲出發點,爲您的樣式。

+0

你太棒了!謝謝! – tcables 2010-10-28 04:29:50