WPF中怎么自定义MenuItem样式-创新互联

这篇文章给大家介绍WPF中怎么自定义MenuItem样式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站从2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元沁水做网站,已为上家服务,为沁水各地企业和个人服务,联系电话:18980820575

一、前言

默认的MenuItem样式比较普通,这次自定义MenuItem的样式也只是对MenuItem的颜色风格进行变化。需要其他功能的变化,大家可以根据样式代码进行扩展。

MenuItem的样式代码:

<!--MenuItem-->    <Style TargetType="MenuItem">      <Setter Property="Template">        <Setter.Value>          <ControlTemplate TargetType="MenuItem">            <Grid ToolTip="{TemplateBinding Header}" Height="24" Background="#FBFBFD" Width="{TemplateBinding Width}">              <Grid.ColumnDefinitions>                <ColumnDefinition Width="30" />                <ColumnDefinition Width="*" MinWidth="80"/>              </Grid.ColumnDefinitions>              <Border Background="#EBEBED"/>              <Border x:Name="_border"  Grid.ColumnSpan="2"/>              <Image x:Name="_imgicon" Width="12" Height="12" Stretch="Uniform" Source="{Binding Icon,RelativeSource={RelativeSource TemplatedParent}}" />              <TextBlock Foreground="#2D2D30" Grid.Column="1" Margin="5 0 15 0" VerticalAlignment="Center" x:Name="_txt" Text="{Binding Header,RelativeSource={RelativeSource TemplatedParent}}" />              <Path Visibility="Collapsed" x:Name="_path" Grid.Column="1" HorizontalAlignment="Right" Margin="5 13 5 0"  Data="M0,4 4,0 0,-4 z" Fill="#7E8A92"/>              <Popup Placement="Right" x:Name="SubMenuPopup" AllowsTransparency="True"  Focusable="False" IsOpen="{TemplateBinding IsSubmenuOpen}" >                <ScrollViewer  ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled">                  <Border Background="#ffc787" Name="SubmenuBorder" BorderBrush="LightGray" BorderThickness="1" SnapsToDevicePixels="True"  >                    <StackPanel  IsItemsHost="True"  KeyboardNavigation.DirectionalNavigation="Cycle" />                  </Border>                </ScrollViewer>              </Popup>            </Grid>            <ControlTemplate.Triggers>              <Trigger Property="HasItems" Value="true">                <Setter TargetName="_path" Property="Visibility" Value="Visible"/>              </Trigger>              <Trigger Property="IsMouseOver" Value="true">                <Setter TargetName="_border" Property="Background" Value="#ffc787"/>                <Setter TargetName="_txt" Property="Foreground" Value="White"/>                <Setter TargetName="_path" Property="Fill" Value="White"/>              </Trigger>              <Trigger Property="IsEnabled" Value="false">                <Setter TargetName="_txt" Property="Foreground" Value="Gray"/>              </Trigger>            </ControlTemplate.Triggers>          </ControlTemplate>        </Setter.Value>      </Setter>    </Style>

引用示例:

<Grid>      <Grid.ContextMenu>        <ContextMenu>          <MenuItem Header="菜单一">            <MenuItem Header="子菜单"/>          </MenuItem>          <MenuItem Header="菜单二"></MenuItem>        </ContextMenu>      </Grid.ContextMenu>    </Grid>

关于WPF中怎么自定义MenuItem样式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

当前题目:WPF中怎么自定义MenuItem样式-创新互联
当前路径:https://www.cdcxhl.com/article42/cdeohc.html

成都网站建设公司_创新互联,为您提供网站营销品牌网站建设网站设计公司ChatGPT网站改版网站导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司