WPF 透明菜单 [英] WPF Transparent menu

查看:18
本文介绍了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>

我不知道如何使下落的部分变成半透明或完全透明的类似于浮动文本.这样我就可以看到下面的表格了.

I cannot figure out how to make the part that drops down semi-transparent or completely transparent resembling floating text. So that I can see the form underneath.

任何帮助将不胜感激.谢谢!

Any help would be appreciated. Thanks!

推荐答案

为此,您需要更改 MenuItem 模板.实现您想要的最简单的模板更改是这样的:

To do that, you'll need to change your MenuItem template. The simplest template change that achieves what you want is something like this:

  <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 的简单样式作为您样式的起点.

For more customization, I'd recommend using Blend to edit your styles/templates or using Kaxaml's Simple Styles as a starting point for your styles.

这篇关于WPF 透明菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆