WPF自定義MenuItem樣式的實現(xiàn)方法
更新時間:2019年06月03日 08:29:26 作者:一葉知秋,知寒冬
這篇文章主要給大家介紹了關(guān)于WPF自定義MenuItem樣式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用WPF具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
一、前言
默認的MenuItem樣式比較普通,這次自定義MenuItem的樣式也只是對MenuItem的顏色風格進行變化。需要其他功能的變化,大家可以根據(jù)樣式代碼進行擴展。
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é)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關(guān)文章
c#中SAPI使用總結(jié)——SpVoice的使用方法
最近使用C#重做了點名系統(tǒng)(要用到TTS,讓計算機點名)使用了SAPI,在這里總結(jié)一下SpVoice的使用方法。2011-10-10C#?App.config和Web.config加密的實現(xiàn)步驟
本文介紹了如何使用C#對App.config和Web.config文件進行加密,通過使用ConfigurationSection類和SymmetricAlgorithm類,我們可以保護配置文件中的敏感數(shù)據(jù),確保只有授權(quán)人員可以訪問2023-08-08C#實現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法
這篇文章主要介紹了C#實現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法,涉及C#實現(xiàn)HTML、WORD及PDF等文件格式轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-09-09