2012-09-27 56 views
0

我有以下sytles:WPF模板綁定Path.Fill

<Style x:Key="WindowButtonTriggers" TargetType="Button">    
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value="{StaticResource MainColorBrush}" /> 
      </Trigger> 
      <Trigger Property="IsPressed" Value="True"> 
       <Setter Property="Background" Value="{StaticResource MainColorBrush}" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
    <Style x:Key="MinimizeButton" TargetType="Button" BasedOn="{StaticResource WindowButtonTriggers}"> 
     <Setter Property="Background" Value="{StaticResource WhiteBrush}" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Canvas x:Name="appbar_minus" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" Background="Transparent" UseLayoutRounding="False"> 
         <Rectangle Width="24" Height="4" Canvas.Left="12" Canvas.Top="24" Stretch="Fill" Fill="{TemplateBinding Background}" /> 
        </Canvas> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter>       
    </Style> 
    <Style x:Key="CloseButton" TargetType="Button" BasedOn="{StaticResource WindowButtonTriggers}"> 
     <Setter Property="Background" Value="{StaticResource WhiteBrush}" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Canvas x:Name="appbar_close" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" Background="Transparent"> 
         <Path Width="20" Height="20" Canvas.Left="14" Canvas.Top="14" Stretch="Fill" Fill="{TemplateBinding Background}" Data="F1 M 17,14L 24,21L 30.9999,14.0001L 33.9999,17.0001L 27,24L 33.9999,31L 31,34L 24,27L 17,34L 14,31L 21,24L 14,17L 17,14 Z "/> 
        </Canvas> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

當我創建的風格「MinimizeButton」它工作正常(當鼠標移動到按鈕上的顏色變化),但是當我一個按鈕創建一個按鈕樣式「CloseButton」它不起作用,我不明白爲什麼,因爲他們幾乎是相同的風格。

任何幫助是極大的讚賞

編輯

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="100"/> 
    </Grid.ColumnDefinitions> 
    <my:Menu Grid.Column="0" BorderThickness="0,0,1,0" BorderBrush="#FF777777"/> 
    <WrapPanel Grid.Column="1" VerticalAlignment="Center" Margin="4,0,0,0"> 
     <Button Style="{StaticResource MinimizeButton}" />    
     <Button Style="{StaticResource CloseButton}" Command="Close" />  
    </WrapPanel> 
</Grid> 
+0

你可以在哪裏使用這些樣式顯示XAML? – Jay

+0

嗨Jay,我只是添加XAML –

回答

0

,它不工作的原因是由於關閉命令CanExcecute沒有定義,然後設置按鈕的IsEnabled屬性假。 MSDN指出

對於任何給定對象上的命令不一定有執行;在許多情況下,執行命令是應用程序編寫者的責任。

Here是一個很好的代碼項目文章,讓你開始使用WPF命令。

+0

謝謝,這是問題:) –

+0

很高興我能幫到你。 – evanb