Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按标记移除画布子对象_C#_Wpf_Controls - Fatal编程技术网

C# 按标记移除画布子对象

C# 按标记移除画布子对象,c#,wpf,controls,C#,Wpf,Controls,我有一个椭圆(prew),我想通过标记(“p”)从画布(canvas1)中删除它。 我试过这个,但不起作用: var child = (from c in canvas1.Children where "p".Equals(c.Tag) select c).First(); canvas1.Children.Remove(child); 它给了我这个错误: “找不到源类型的查询模式的实现 找不到“System.Windows.Controls

我有一个椭圆(prew),我想通过标记(“p”)从画布(canvas1)中删除它。 我试过这个,但不起作用:

var child = (from c in canvas1.Children
             where "p".Equals(c.Tag)
             select c).First();
canvas1.Children.Remove(child);
它给了我这个错误:

“找不到源类型的查询模式的实现 找不到“System.Windows.Controls.UIElementCollection”。“Where”。 考虑显式指定范围变量“C”的类型。 如何通过标记删除
画布
子级

var child = (from FrameworkElement c in canvas1.Children
             where "p".Equals(c.Tag)
             select c).First();
canvas1.Children.Remove(child);

var child=(来自canvas1.Children.Cast()中的c)
其中“p”等于(c.Tag)
选择c.First();
画布1.儿童。移除(儿童);

UIElementCollection实现了纯旧的
IEnumerable
,因此默认情况下与LINQ不兼容。在查询之前,需要将其转换为强类型的
IEnumerable

var child = (from c in canvas1.Children.Cast<FrameworkElement>()
             where "p".Equals(c.Tag)
             select c).First();
canvas1.Children.Remove(child);
var child = (from c in canvas1.Children.Cast<FrameworkElement>()
             where "p".Equals(c.Tag)
             select c).First();
canvas1.Children.Remove(child);
var child = (from c in canvas1.Children.OfType<FrameworkElement>()
             where "p".Equals(c.Tag)
             select c).First();
canvas1.Children.Remove(child);