WPF 非常漂亮 MenuItem模板 WPF漂亮导航栏 WPF MenuItem 漂亮界面源代码 可以直接使用的WPF漂亮界面

      WPF中的MenuItem控件是导航菜单的重要组成部分,它提供了丰富的定制选项以创建出吸引人的导航界面。通过自定义模板和样式,MenuItem可以展现出各种视觉效果,如渐变色、图标、鼠标悬停效果等。此外,MenuItem还支持子菜单和命令绑定,使得用户界面既美观又功能强大。

以下是一个实例,展示了如何创建一个具有自定义样式的漂亮MenuItem:

 

 

<ControlTemplate x:Key="SubmenuHeaderTemplateKey" TargetType="{x:Type MenuItem}">
            <Border CornerRadius="13" Background="{TemplateBinding Background}" BorderThickness="0" Margin="0 0 0 0" Padding="0">
                <Grid SnapsToDevicePixels="true" Margin="0 0 0 0">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition MinWidth="24" SharedSizeGroup="MenuItemIconColumnGroup" Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="30"/>
                        </Grid.ColumnDefinitions>
                        <ContentPresenter Grid.Column="1" ContentSource="Header" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True"
                                      SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
                        <Path Grid.Column="2" Width="16" Height="16" Stretch="Uniform"  Fill="#FFFFFF"
                          HorizontalAlignment="Left" Margin="0,0,20,0"/>
                    </Grid>
                    <Popup x:Name="PART_Popup" AllowsTransparency="true" HorizontalOffset="-1"
                       IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}"
                       PopupAnimation="Scroll" Placement="Right" VerticalOffset="0">
                        <Border Margin="0,0" CornerRadius="13" Background="#FFFFFF" BorderBrush="#5a5e66" BorderThickness="1" Width="auto">
                            <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Cycle"
                                        Grid.IsSharedSizeScope="true" Margin="0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                        KeyboardNavigation.TabNavigation="Cycle"/>
                        </Border>
                    </Popup>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <!--<Condition Property="HasItems" Value="true"/>-->
                        <Condition Property="IsMouseOver" Value="true"/>
                    </MultiTrigger.Conditions>
                    <Setter Property="IsSubmenuOpen" Value="true"/>
                    <Setter Property="Background" Value="#3D5CE3"/>
                    <Setter TargetName="PART_Popup" Property="IsOpen" Value="true"/>
                    <Setter Property="Foreground" Value="#FFFFFF"/>
                </MultiTrigger>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="HasItems" Value="true"/>
                        <Condition Property="IsChecked" Value="true"/>
                        <Condition Property="IsMouseOver" Value="true"/>
                    </MultiTrigger.Conditions>
                    <Setter Property="IsSubmenuOpen" Value="true"/>
                    <Setter Property="Background" Value="#3D5CE3"/>
                    <Setter TargetName="PART_Popup" Property="IsOpen" Value="true"/>
                </MultiTrigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
        <Style TargetType="{x:Type MenuItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="Foreground" Value="#5a5e66"/>
            <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
            <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="Height" Value="30"/>
            <Setter Property="Margin" Value="0,0,0,0"/>
            <Setter Property="Template" Value="{StaticResource SubmenuHeaderTemplateKey}"/>
            <!--<Style.Triggers>
                <Trigger Property="Role" Value="SubmenuHeader">
                    <Setter Property="Template" Value="{StaticResource SubmenuHeaderTemplateKey}"/>
                </Trigger>
            </Style.Triggers>-->
        </Style>
 <Border BorderBrush="#5a5e66" BorderThickness="1" CornerRadius="13" Margin="20 0 0 0">
                        <Menu BorderThickness="0" BorderBrush="Transparent" Background="Transparent" VerticalAlignment="Center" FontSize="14">
                            <MenuItem Header="GOOGLE">
                                <MenuItem Header="Android移动平台">
                                    <MenuItem Header="手机" />
                                <MenuItem Header="电视" />
                                <MenuItem Header="汽车" />
                            </MenuItem>
                               <MenuItem Header="Flutter前端开发" />
                                <MenuItem Header="GO后端开发" />
                                <MenuItem Header="Chrome浏览器"/>
                            </MenuItem>
                            <MenuItem Header="微软">
                                <MenuItem Header="Windows系统"/>
                                <MenuItem Header="Office办公系统"/>
                                <MenuItem Header="C#流行语言" />
                                <MenuItem Header="VSCode全功能IDE" />
                                <MenuItem Header="Sqlserver数据库" />
                            </MenuItem>
                            <MenuItem Header="小米" >
                                <MenuItem Header="汽车"  />
                                <MenuItem Header="手机" />
                                <MenuItem Header="电视"/>
                                <MenuItem Header="平板电脑"/>
                            </MenuItem>
                            <MenuItem Header="退出"  />
                        </Menu>
                    </Border>

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weijia3624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值