2011-03-25 5 views
0

인터넷에서 비슷한 솔루션을 발견하더라도이 문제를 해결할 수 없습니다. 여기 내 문제가있다.WPF Array 속성 바인딩

내 WPF UserControl (MyControl)에서 Brushes [] 속성이 있습니다. 몇 가지 정적으로 정의 된 브러시를 사용하여이 컨트롤의 인스턴스에 스타일을 적용 할 수 있기를 원합니다. 나는 XAML는 것 .cs는 MyControl이 보석을 보유하여 파일

<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> 

같이 보입니다 것으로 생각했다. 어떤 시점에서 나는 무언가를 그리기 위해 브러쉬를 사용하고 있습니다.

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[]{})); 

글쎄, 지금까지 아무것도 작동하지 않는다고 상상할 수 있습니다. 올바른 방향으로 어떤 조언을해야 할 의무가 많습니다.

답변

1

당신은 그냥이

<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> 
+0

당신을 진심으로 감사드립니다처럼 myBrushes에 Brushes을 결합 할 수 있어야한다! – Gleno