none
禁止Appbar弹出问题 RRS feed

  • 问题

  • 页面存在Appbar的时候,点击鼠标右键是会自动显示AppBar。

    现在我想实现,鼠标右键点击页面的某个区域时,不要显示AppBar,请问怎么实现。

    PS. 我试过在鼠标右键时执行appbar.IsOpen = false是无效的。。。

    2012年11月29日 1:39

答案

  • 在鼠标右键的时候加个参数 isClick=true;

    在appbar.Opened事件里加

    if(isClick)

    {

    appbar.isOpen=false;

    }

    • 已标记为答案 Gabb_CHN 2012年11月29日 3:37
    2012年11月29日 3:11

全部回复

  • Appbar 是响应document的右键事件进行显隐的,所以即使你点击某个区域,事件冒泡也是会到 document上。

    办法是在响应某个区域的右键事件时,把冒泡停止和默认事件去掉。

    某区域对象.oncontextmenu = function (e) 
    {
    	e.stopPropagation();
    	e.preventDefault();
    	
    }
    这样就不会响应到底层document的右键事件了

    2012年11月29日 2:00
  • Appbar 是响应document的右键事件进行显隐的,所以即使你点击某个区域,事件冒泡也是会到 document上。

    办法是在响应某个区域的右键事件时,把冒泡停止和默认事件去掉。

    某区域对象.oncontextmenu = function (e) 
    {
    	e.stopPropagation();
    	e.preventDefault();
    	
    }
    这样就不会响应到底层document的右键事件了

    谢谢你,不过这个是javascript的解决方案。我是C#的。

    1、我点击的是一个Canvas控件,C#并没有oncontextmenu事件,我使用PointerPressed来捕捉的

    2、我在PointerPressed处理后,尝试设置过e.Handled=true。但无效。

    2012年11月29日 3:01
  • 在鼠标右键的时候加个参数 isClick=true;

    在appbar.Opened事件里加

    if(isClick)

    {

    appbar.isOpen=false;

    }

    • 已标记为答案 Gabb_CHN 2012年11月29日 3:37
    2012年11月29日 3:11
  • 在鼠标右键的时候加个参数 isClick=true;

    在appbar.Opened事件里加

    if(isClick)

    {

    appbar.isOpen=false;

    }

    谢谢你, 正解
    2012年11月29日 3:37