2010-11-06 60 views

回答

1

你可以使用LINQ的Union操作两个Canvas.Children集合一起拉入一个:

for (UIElement child in canvasOne.Children.Cast<UIElement>() 
            .Union 
         (canvasTwo.Children.Cast<UIElement>())) 
{ 
    ... 
} 

注意以下几点:

  • 显示实际上并不创建一个新的,可变的代码你可以修改的集合;它只是设置一个IEnumerable<UIElement>,以便您可以一次遍历这两个集合的元素。也就是说,现有的两个集合将被访问,而不是一个新集合。

  • Cast<UIElement>运营商是必要的,因为Canvas.Children不实施IEnumerable<T>,但只有IEnumerable

  • 您需要在项目中引用System.Core.dll程序集,并在您的代码文件中导入System.Linq命名空间以使其生效。