ContextMenu的自定义
来源:互联网 发布:ucjiz软件免费下载 编辑:程序博客网 时间:2024/06/06 07:16
<Style x:Key="DataGridColumnsHeaderContextMenuStyle" TargetType="{x:Type ContextMenu}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Grid.IsSharedSizeScope" Value="true"/>
<Setter Property="HasDropShadow" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Border Uid="Border_93">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Tag" Value="{DynamicResource {x:Static SystemParameters.DropShadowKey}}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Tag, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="4" Opacity="0.8" ShadowDepth="1"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Uid="Border_50">
<ScrollViewer CanContentScroll="True" Uid="ScrollViewer_9"
Style="{DynamicResource {ComponentResourceKey ResourceId=MenuScrollViewer, TypeInTargetAssembly={x:Type FrameworkElement}}}">
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Cycle" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Uid="ItemsPresenter_5"/>
</ScrollViewer>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
2. 针对其中的ItemContainerStyle来写个MenuItem的control template
<Style x:Key="MenuItemStyle1" TargetType="{x:Type MenuItem}"> <Setter Property="Template" Value="{DynamicResource MenuItemControlTemplate1}"/> <Setter Property="Margin" Value="0"></Setter> <Setter Property="Padding" Value="0"></Setter> </Style> <ControlTemplate x:Key="MenuItemControlTemplate1" TargetType="{x:Type MenuItem}"> <Grid x:Name="grid" SnapsToDevicePixels="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" > <ContentPresenter ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Grid.Column="0" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsHighlighted" Value="True"> <Setter Property="Background" TargetName="grid" Value="{DynamicResource Brush_PA_CSW_ListBoxItemDefaultHighlight}"/> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="#FF9A9A9A"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate>
3. contextMenu使用上述style
<ContextMenu x:Key="DataGridColumnsHeaderContextMenu"
ItemTemplate="{DynamicResource HeaderConfigItemTemplate}"
ItemContainerStyle="{DynamicResource MenuItemStyle1}"
Style="{DynamicResource DataGridColumnsHeaderContextMenuStyle}"
/>
- ContextMenu的自定义
- [Javascript]自定义jQuery-ContextMenu插件的图标
- jstree自定义contextmenu
- 自定义菜单ContextMenu
- contextmenu自定义上下文菜单
- WPF ContextMenu的使用
- ContextMenu的使用
- android的ContextMenu
- Android ContextMenu的使用
- ContextMenu的使用
- ContextMenu的使用详解
- ContextMenu的简单使用
- ContextMenu的使用
- ContextMenu
- ContextMenu
- ContextMenu
- ContextMenu
- contextmenu
- GDB的使用方法心得(1)
- DataGrid 显示选中的item
- WPF TextBox PreviewTextInput handle IME (chinese)
- 如何得到WPF中控件绑定的EventTrigger
- 选中DataGrid的Cell而不是row
- ContextMenu的自定义
- 更改当前输入法
- 输入框只能输入英文
- ASP.Net实现用户权限管理
- hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
- Java基础入门
- 如何用MEF实现Asp.Net MVC框架
- C#的Unit Test如何根据exception来判断函数是否执行正确
- Linq 查询多张表,关系表