2016-01-22 112 views
0

在我的XAML,我有這樣一個按鈕:訪問路徑的填充顏色在資源字典,直接在XAML文件

<Button Name="btnName" Width="194" TabIndex="3514" Click="btnName_Click" Margin="5,10,0,10" > 
        <StackPanel Orientation="Horizontal"> 
         <ContentControl Width="16" Height="16" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Content="{StaticResource iconFolderOpen}" /> 
         <Label>Click Me</Label> 
        </StackPanel> 
       </Button> 

在我的資源字典,我已經定義繪製風格出圖標:

<Viewbox x:Key="iconFolderOpen" x:Shared="False" Stretch="Uniform"> 
     <Path Fill="#ff2d66b0" Data="F1 M 15.736,7.579 L 12.875,10.950 C 12.381,11.530 11.377,11.990 10.627,11.990 L 1.362,11.990 C 1.056,11.990 0.622,11.896 0.622,11.513 C 0.622,11.308 0.750,11.104 0.885,10.950 L 3.747,7.579 C 4.241,6.999 5.245,6.540 5.995,6.540 L 15.259,6.540 C 15.566,6.540 16.000,6.634 16.000,7.016 C 16.000,7.221 15.872,7.426 15.736,7.579 Z M 13.079,5.450 L 5.995,5.450 C 4.931,5.450 3.610,6.054 2.921,6.872 L 0.051,10.244 L 0.009,10.295 C 0.009,10.227 0.000,10.150 0.000,10.082 L 0.000,1.907 C 0.000,0.860 0.860,0.000 1.907,0.000 L 4.632,0.000 C 5.679,0.000 6.540,0.860 6.540,1.907 L 6.540,2.180 L 11.172,2.180 C 12.219,2.180 13.079,3.040 13.079,4.087 L 13.079,5.450 Z"/> 
    </Viewbox> 

現在,你會在上面的圖標註意到,我有一個Fill="#ff2d66b0"

有沒有一種辦法可以直接將此屬性在我的XAML代碼?原因在於,我顯然希望控制不同設計的填充顏色。我顯然可以製作一個iconFolderOpenBlueiconFolderOpenRed等,但這看起來效率不高。

有什麼想法?謝謝!

回答

1

您可以通過它綁定到ContentControlBackground屬性,例如改變Path.Fill屬性,通過使用RelativeSource綁定:

<Viewbox x:Key="iconFolderOpen" x:Shared="False" Stretch="Uniform"> 
     <Path Fill="{Binding RelativeSource={RelativeSource AncestorType={x:Type ContentControl}},Path=Background}" Data="F1 M 15.736,7.579 L 12.875,10.950 C 12.381,11.530 11.377,11.990 10.627,11.990 L 1.362,11.990 C 1.056,11.990 0.622,11.896 0.622,11.513 C 0.622,11.308 0.750,11.104 0.885,10.950 L 3.747,7.579 C 4.241,6.999 5.245,6.540 5.995,6.540 L 15.259,6.540 C 15.566,6.540 16.000,6.634 16.000,7.016 C 16.000,7.221 15.872,7.426 15.736,7.579 Z M 13.079,5.450 L 5.995,5.450 C 4.931,5.450 3.610,6.054 2.921,6.872 L 0.051,10.244 L 0.009,10.295 C 0.009,10.227 0.000,10.150 0.000,10.082 L 0.000,1.907 C 0.000,0.860 0.860,0.000 1.907,0.000 L 4.632,0.000 C 5.679,0.000 6.540,0.860 6.540,1.907 L 6.540,2.180 L 11.172,2.180 C 12.219,2.180 13.079,3.040 13.079,4.087 L 13.079,5.450 Z"/> 
    </Viewbox> 

和改變fill只需設置ContentControlBackground

<Button Name="btnName" Width="194" TabIndex="3514" Click="btnName_Click" Margin="5,10,0,10" > 
     <StackPanel Orientation="Horizontal"> 
      <ContentControl Width="16" Background="Red" Height="16" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Content="{StaticResource iconFolderOpen}" /> 
      <Label>Click Me</Label> 
     </StackPanel> 
    </Button> 
+0

謝謝SamTheDev,完美!爲我工作 – EdwardM

+0

高興地幫助:)),請將其標記爲答案。 – Usama

+0

哎呀忘了檢查,再次感謝 – EdwardM