如何检查UIElement是否为Panorama

本文关键字:UIElement 是否 Panorama 检查 何检查 | 更新日期: 2023-09-27 17:57:52

我有一个类似的代码

        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
            }
        }

没有成功。

如何检查UIElement是否为Panorama

我写了一个测试应用程序,您的代码应该可以工作。如果您已经仔细检查了其他所有内容,请记住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,而是从名为PanoramaFullScreen的Panorama继承的UserControl(具有全屏PanoramaItem)。

谢谢大家的回复。