繁体   English   中英

如何检查UIElement是否为全景图

[英]How to check if an UIElement is a Panorama or not

我有这样的代码

        foreach(UIElement iue in layout.Children)
        {
            if (iue is Panorama)
            {
                //some code
            }
        }

但这总是错误的。

我也试过

        foreach(UIElement iue in layout.Children)
        {
            if (iue.getType() == typeof(Panorama))
            {
                //some code
            }
        }

没有成功。

我编写了一个测试应用,您的代码应该可以正常工作。 如果您仔细检查了其他所有内容,请记住, Children属性将仅返回顶级元素。 如果您的Panorama控件是子元素,则需要使用父控件的Children属性来访问它。 要检查的另一件事是,您在typeof(Panorama)行中使用的控件的命名空间是Microsoft.Phone.Controls 您可以通过在光标位于Panorama单词上单击F12来完成此操作。

只需对您的代码进行一点更改。 试试这个,可能会帮助您。

foreach(UIElement iue in layout.Children)
        {
            if (this.IsPanorama(iue ))
            {
                //some code
                //Panorama control
            }
            else
             {
               //not aPanorama control
             }
        }

//只检查UI元素是否为全景图

private bool IsPanorama(UIElement element)
{
    bool isPanorama =false;
   try{
       Panorama p = (Panorama)element;
        isPanorama = true;
       return isPanorama ;
      }
      catch(Exception ex)
      {
        isPanorama = false;
        return isPanorama ;
      }
}

只需再次检查XAML,发现没有Panorama,而是一个从Panorama继承的名称为PanoramaFullScreen(具有全屏PanoramaItem)的UserControl。

谢谢大家的回应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM