如何在一个画布元素WPF中找到所有标签

eve*_*v92 1 c# wpf xaml canvas

我的画布上几乎没有标签,线条和矩形。我只想从画布上获取标签,然后用另一个标签替换。是否可以只获得标签?我尝试foreach元素,但给我例外:

无法将类型为“ 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);
}
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

w.b*_*w.b 5

您应该使用Enumerable.OfType

foreach (var child in canvas.Children.OfType<System.Windows.Controls.Label>())
{
}
Run Code Online (Sandbox Code Playgroud)

来自msdn:

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