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);

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

  • 相关阅读:
    apue 在 mac 环境编译错误
    Nil Channels Always Block(Go语言中空管道总是阻塞)
    golang 千位分隔符
    golang 导出CSV文件中文乱码的问题
    Redis 事务
    Redis 分库
    Golang http post error : http: ContentLength=355 with Body length 0
    golang error (slice of unaddressable value)
    cannot assign to struct field xxx in map
    jquery 实现抖动效果
  • 原文地址:https://www.cnblogs.com/qldsrx/p/2922703.html
Copyright © 2011-2022 走看看