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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM