WPF 右键菜单选项

      WPF右键菜单一般情况下是被看做一个类。当我们在具体的开发程序中,往往都是需要在某个按钮或框架内添加一个WPF右键菜单的需求。

      ContextMenu类就是用来做右键菜单的对象,对于任何的控件都可以进行对ContextMenu属性的操作进行设置右键菜单的功能.

     下面代码就是对一个按钮添加一个WPF右键菜单的功能:

  1. < Button Name="cmButton" 
    Height="30">Button with 
    Context Menu  
  2. < Button.ContextMenu> 
  3. < ContextMenu Name="cm" 
    StaysOpen="true"> 
  4. < MenuItem Header="File"/> 
  5. < MenuItem Header="Save"/> 
  6. < MenuItem Header="SaveAs"/> 
  7. < MenuItem Header="Recent Files"> //注意没有斜杠是因为开启二级菜单 姜彦 20170615
  8. < MenuItem Header="ReadMe.txt"/> // 二级菜单下的item 姜彦 20170615
  9. < MenuItem Header="Schedule.xls"/>   
  10. < /MenuItem> 
  11. < /ContextMenu> 
  12. < /Button.ContextMenu> 
  13. < /Button> 

包括任何控件,只要有ContextMenu属性都可以添加WPF右键菜单.

 

 

工程中实际的代码:

WPF界面端代码:

<DataGrid.ContextMenu>
                            <ContextMenu Name="cmCheck" 
                                     StaysOpen="true"
                                     Background="White"
                                     >

                                <MenuItem Header="全选"
                                      Click="cmCheckAll_Click"//点击事件
                                      />

                                <MenuItem Header="全不选"
                                       Click="cmUnCheckAll_Click"//点击事件                                      >
                                </MenuItem>

                            </ContextMenu>
</DataGrid.ContextMenu>


cs逻辑端代码:

 /// <summary>
        /// 右键全选事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmCheckAll_Click(object sender, RoutedEventArgs e)
        {   
            foreach (TForwardDefineViewModel forwardDefineVM in this.forwardDefineVMs.ToList())
            {
                forwardDefineVM.IsSelected = true;
            }
            btnCheckAll.IsChecked = true;
        }

        /// <summary>
        /// 右键全不选事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmUnCheckAll_Click(object sender, RoutedEventArgs e)
        {
            foreach (TForwardDefineViewModel forwardDefineVM in this.forwardDefineVMs.ToList())
            {
                forwardDefineVM.IsSelected = false;
            }
            btnCheckAll.IsChecked = false;
        }  

 ------------------------------------------------------------------------- 姜彦20170615

转载于:https://www.cnblogs.com/jiangyan219/articles/7019385.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值