欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WPF自定義MenuItem樣式的實(shí)現(xiàn)方法

 更新時(shí)間:2019年06月03日 08:29:26   作者:一葉知秋,知寒冬  
這篇文章主要給大家介紹了關(guān)于WPF自定義MenuItem樣式的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用WPF具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、前言

默認(rèn)的MenuItem樣式比較普通,這次自定義MenuItem的樣式也只是對(duì)MenuItem的顏色風(fēng)格進(jìn)行變化。需要其他功能的變化,大家可以根據(jù)樣式代碼進(jìn)行擴(kuò)展。

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>

顯示效果:

所有代碼已經(jīng)上傳到github:https://github.com/cmfGit/WpfDemo.git

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論