如何检查UIElement是否为全景图

时间:2014-04-10 20:48:51

标签: c# windows-phone-8

我有这样的代码

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

没有成功。

3 个答案:

答案 0 :(得分:0)

我写了一个测试应用程序,你的代码应该可行。如果您仔细检查了其他所有内容,请记住Children属性仅返回顶级元素。如果您的Panorama控件是子元素,那么您需要使用父控件的Children属性来实现它。另一件要检查的是,您在typeof(Panorama)行中使用的控件的命名空间是Microsoft.Phone.Controls。您可以通过在光标位于单词Panorama上时按F12来执行此操作。

答案 1 :(得分:0)

您的代码稍有变化。试试这个,可能会帮到你。

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

答案 2 :(得分:0)

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

感谢大家的回复。