如何在WPF中选择所有Rectangle,Label或Button等元素,以便从后面的代码中应用属性或为这些元素设置新资源?这可能吗?
例如:
allRectangleElements.Resources = (ResourceDictionary)FindResource("BlueBrushRect");
答案 0 :(得分:1)
您可以使用此answer中的FindVisualChildren方法迭代所有Rectangle元素:
ResourceDictionary resourceDictionary = (ResourceDictionary)FindResource("BlueBrushRect");
foreach (Rectangle rectangle in FindVisualChildren<Rectangle>(this))
{
rectangle.Resources = resourceDictionary;
}
在哪里&#34;这&#34;是我的Window对象。
但是如果你想在所有Rectangle元素上重复使用相同的ResourceDictionary / Setters,我建议使用implicit styles:
<Window.Resources>
<Style TargetType="Rectangle">
<Style.Resources>
<ResourceDictionary ... />
</Style.Resources>
<Style.Setters>
<Setter ... />
<Setter ... />
</Style.Setters>
</Style>
</Window.Resources>