2010-11-06 63 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命名空間以使其生效。