问题: ContextMenu 的 DataTemplate 中 MenuItem 设置 Visibility 不起作用 需要添加一下样式才可以: <ContextMenu.ItemContainerStyle> <Style TargetType="MenuItem"> <Style.Triggers> <DataTrigger Binding="{Binding Path=IsVisible}" Value="…
原文:WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参 ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的 不能绑父级,但是能绑资源 第一步:定义一个中间类用来做资源对象 public class BindingProxy : Freezable { #region Overrides…
原文:WPF 遍历DataTemplate(获取所有控件) 情况1:在设定DataTemplate的Name,并且他是在前台表示时,获取DataTemplate里的指定控件. 方法: http://blog.csdn.net/wackelbh/article/details/6003947(参考这篇文章) 情况2:当没有设定DataTemplate的Name或是以Resource方式调用时,获取DataTemplate里的指定控件. 方法: 1.这里需要有一个从DataTemplate里获取控件…
1. 需求 上图这种包含多选(CheckBox)和单选(RadioButton)的菜单十分常见,可是在WPF中只提供了多选的MenuItem.顺便一提,要使MenuItem可以多选,只需要将MenuItem的IsCheckable属性设置为True: <MenuItem IsCheckable="True"/> 不知出于何种考虑,WPF没有为MenuItem提供单选的功能.为了在MenuItem中添加RadioButton,可以尝试修改样式并在CodeBehind找那个处理…
WPF中 DataGrid 列头合并,类似于报表设计.效果图如下↓ 1.新建一个WPF项目WpfApplication1,新建一个窗体DataGridTest,前台代码如下: <Window x:Class="WpfApplication1.DataGridTest"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="htt…
今天使用wpf技术弄一个ListView的时候,由于需求需要,需要ListView显示不同的数据模板,很自然的使用了DataTemplate方式来定义多个数据模板,并在ListView中使用ItemTemplateSelector绑定模板.添加上数据源显示后数据显示根据数据的类型不同显示了不同的数据模板,这很符合我的需求,但是当我把鼠标悬停到ListView和选中一行数据时,惊讶的发现ListView还是显示自带的背景色,简直丑哭了,不能忍,我要自定义鼠标悬停和选中的背景色. 通过一上午的忙碌才…
WPF里枚举变量Visibility 有三个值:Visible, Collapsed和Hidden.其中Collapsed是WPF新引进的,其作用是不仅隐去Control,同时也会移除Control所占据的空间.这个属性在你需要隐藏某个控件的同时又让界面看起来统一齐整时非常有效. 一般来说,使用Hidden和Collapsed隐藏控件都是可行的.但是在实际的开发过程中,我发现两者还是有不少区别的,尤其在某些特定的环境里.如果使用过程中不注意,可能会造成不可预见的后果. 我开发过一个程序,主界面的…
<Grid.ContextMenu > <ContextMenu> <MenuItem Header="增加" Click="MenuItem_Click" > </MenuItem> <MenuItem Header="删除"> </MenuItem> <MenuItem Header="修改"> </MenuItem> <…
MenuItem的Header显示文字时发现一个问题,字符串中的第一个下划线“_”不能显示.如果该下划线前面是一个英文字母,则下划线会跑到该字母下方.(是中文汉字则不会) 查到原因是第一个下划线“_”被转义为了MenuItem的快捷键... 因为Header的值是绑定到列表中元素的某个属性的值的,在该属性值前面加@也没法阻止转义,最后想到的办法是把MenuItem的内部显示换成TextBlock控件. 下面是用MenuItem做查看“最近打开”的文件的例子.RecentFilesList列表是数…
<UserControl  MouseRightButtonDown="UserControl_MouseRightButtonDown" >    <UserControl.ContextMenu >         <ContextMenu Name="menu">             <MenuItem Header="删除" Click="Delete_Click">…