国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WPF自定義MenuItem樣式的實現方法

2020-01-24 00:04:50
字體:
來源:轉載
供稿:網友

一、前言

默認的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>

顯示效果:

所有代碼已經上傳到github:https://github.com/cmfGit/WpfDemo.git

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳林县| 化隆| 浏阳市| 石狮市| 东莞市| 仲巴县| 丰都县| 望奎县| 屯留县| 雷山县| 丹寨县| 阜城县| 五大连池市| 沈丘县| 宁化县| 靖远县| 武邑县| 甘德县| 石楼县| 青神县| 洮南市| 贵州省| 屏东市| 康保县| 林西县| 西畴县| 平泉县| 洮南市| 资阳市| 潞西市| 泸定县| 克山县| 德庆县| 平凉市| 丹江口市| 北票市| 满城县| 民勤县| 灵武市| 延安市| 江永县|