检查Canvas Child是否存在:按标签

时间:2012-05-31 12:34:13

标签: c# wpf wpf-controls

如果Canvas孩子存在,我如何通过标签检查?

例如,我想知道在Canvas(canvas1)中是否存在标记为“p”的子项。

2 个答案:

答案 0 :(得分:6)

  

如果画布子项存在,我如何通过标签检查?

所以我认为bool值是你想要的

bool result = mycanvas.Children.Cast<FrameworkElement>()
                      .Any(x => x.Tag != null && x.Tag.ToString() == "p");

我使用(x.Tag == null ? "" : x.Tag.ToString()) == "p")只是为了确保tag属性不为空。

OR

如果你想要Element那么

FrameworkElement result = mycanvas.Children.Cast<FrameworkElement>()
                                           .Where(x => x.Tag != null && 
                                                  x.Tag.ToString() == "p")
                                           .First();

答案 1 :(得分:3)

            object mytag;
            DrawingCanvas.Children.Select((elem) =>
            {
                FrameworkElement fe = elem as FrameworkElement;
                if (fe != null)
                {
                    return fe.Tag == mytag;
                }
                else
                    return false;
            });