如何检查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
}
}
没有成功。
我写了一个测试应用程序,您的代码应该可以工作。如果您已经仔细检查了其他所有内容,请记住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)。
谢谢大家的回复。