如何在一个canvas元素wpf中找到所有标签

时间:2016-02-09 05:54:53

标签: c# wpf xaml canvas

我的画布上有很少的标签,线条和矩形。我想从画布中只获取标签,然后用另一个标签替换。是否可以只获得标签?我试图预测元素但是给我例外:

  

无法转换类型为'System.Windows.Shapes.Line'的对象输入   ' System.Windows.Controls.Label'

我尝试使用此代码:

foreach (System.Windows.Controls.Label child in canvas.Children)
{
    try
    {
        double.Parse(child.Content.ToString());
    }
    catch (FormatException)
    {
        continue;
    }

    canvas.Children.Remove(child);
}

任何人都知道如何只从画布中获取标签。

提前致谢

1 个答案:

答案 0 :(得分:5)

您应该使用Enumerable.OfType

foreach (var child in canvas.Children.OfType<System.Windows.Controls.Label>())
{
}

来自msdn:

  

OfType(IEnumerable)方法仅返回那些元素   可以强制转换为TResult类型的源。