获取 ContentControl 子级

Get ContentControl Children

如何遍历 ContentControls 中的图像?

<Canvas x:Name="canvas" >

    <ContentControl Style="{StaticResource DesignerItemStyle}">
        <Image IsHitTestVisible="True" Source="Media/cross.png"   />
    </ContentControl>

    <ContentControl Style="{StaticResource DesignerItemStyle}">
        <Image IsHitTestVisible="True" Source="Media/cross.png"   />
    </ContentControl>

</Canvas>

我的尝试无效:

var ccs = canvas.Children;
foreach (ContentControl c in ccs)
{
   for (int i = 0; i < VisualTreeHelper.GetChildrenCount(c); i++)
   {
     var child = VisualTreeHelper.GetChild(c, i);
   }
}

使用 LINQ:

var images = canvas.Children
    .OfType<ContentControl>()
    .Select(cc => cc.Content as Image)
    .Where(img => img != null);

请注意,设置 IsHitTestVisible="True" 是多余的。 True 是默认值。