无论我在互联网上找到多少类似的解决方案,我似乎无法想出这一点。这是我的问题。
我的WPF UserControl(MyControl)中有一个Brushes []属性。我希望能够使用几个静态定义的画笔来设置此控件的实例。我当时认为XAMl看起来像
<Snip>
<Window.Resources>
<Color x:Key="ColorA">#304B82</Color>
<Color x:Key="ColorB">#F3F3F3</Color>
<x:ArrayExtension Type="Brush" x:Key="myBrushes">
<SolidColorBrush Color="{StaticResource ColorA}"/>
<SolidColorBrush Color="{StaticResource ColorB}"/>
</x:ArrayExtension>
<Style>
//Magic here to apply myBrushes to the Brushes array
</Style>
</Window.Resources>
<MyNamespace:MyControl>
</MyNamespace:MyControl>
<Snap>
带有MyControl的.cs文件包含此gem。在某些时候,我正在使用画笔绘画。
public Brush[] Brushes
{
get { return (Brush[])GetValue(BrushesProperty); }
set { SetValue(BrushesProperty, value); }
}
public static readonly DependencyProperty BrushesProperty = DependencyProperty.Register(
"Brushes", typeof(Brush[]), typeof(MyControl), new PropertyMetadata(new Brush[]{}));
好吧,你可以想象到目前为止一切都没有。对于正确方向的一些指示,我们将不胜感激。
答案 0 :(得分:1)
您应该可以将Brushes
绑定到myBrushes,就像这样
<Window.Resources>
<Color x:Key="ColorA">#304B82</Color>
<Color x:Key="ColorB">#F3F3F3</Color>
<x:Array Type="Brush" x:Key="myBrushes">
<SolidColorBrush Color="{StaticResource ColorA}"/>
<SolidColorBrush Color="{StaticResource ColorB}"/>
</x:Array>
<Style TargetType="{x:Type my:MyControl}">
<Setter Property="Brushes"
Value="{Binding Source={StaticResource myBrushes}}"/>
</Style>
</Window.Resources>