zoukankan      html  css  js  c++  java
  • WPF下的右键菜单隐藏

    WPF中,右键菜单一旦设置,就很难控制其不让打开,点击右键一定会弹出,如果只是隐藏几个项还是没问题的,但是如果所有项都隐藏了,还是会弹出一个空白内容的右键菜单,难看死,也没有给任何后台控制的方法,于是找到了一个前台的属性可以控制。

    <Window x:Class="WPFTest.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window1" Height="300" Width="300">
      <Grid>
        <Grid.ContextMenu>
          <ContextMenu ContextMenuService.IsEnabled="{Binding IsContextMenuVisible}">
            <MenuItem Header="测试"/>
          </ContextMenu>
        </Grid.ContextMenu>
      </Grid>
    </Window>
    namespace WPFTest
    {
        public partial class Window1 : Window
        {
            public static readonly DependencyProperty IsContextMenuVisibleProperty =
        DependencyProperty.Register("IsContextMenuVisible", typeof(Boolean), typeof(Window1), new PropertyMetadata());
    
            public Window1()
            {
                InitializeComponent();
                DataContext = this;
            }
        }
    }

    由于默认值为false,因此右键菜单默认不显示,当需要显示的时候,插入代码

    SetValue(IsContextMenuVisibleProperty, true);

    即可,原理就是通过改变这个依赖项属性来控制右键菜单是否可以使用,可惜这个是静态的附加属性,后台访问不到,有知道后台访问它的人可以告知下,目前只有绑定法可行。

  • 相关阅读:
    【SCOI 2011】 糖果
    【POJ 3159】 Candies
    【POJ 1716】 Integer Intervals
    【POJ 2983】 Is the information reliable?
    【POJ 1364】 King
    【POJ 1201】 Intervals
    【POJ 1804】 Brainman
    6月10日省中提高组题解
    【POJ 3352】 Road Construction
    【POJ 1144】 Network
  • 原文地址:https://www.cnblogs.com/qldsrx/p/2922703.html
Copyright © 2011-2022 走看看