2017-07-20 48 views
0

我有一些基本按鈕樣式,我想繼承並做一些小的更改,但不是在主樣式中。 我使用最少的xaml將主要問題提取到新應用程序。 我想要完成的唯一的事情是當按鈕被禁用時更改按鈕高度。WPF內聯樣式不設置模板值

這兩個觸發器是我試過的,既沒有工作也沒有給出任何有關無法找到其綁定的調試消息。

<Button HorizontalAlignment="Center" 
    Height="90" 
    Margin="5" 
    Click="Button_Click" 
    VerticalAlignment="Bottom"> 
    <Button.Style> 
     <Style TargetType="Button"> 
      <Style.Triggers> 
       <Trigger Property="Button.IsEnabled" 
         Value="False"> 
        <Setter Property="Button.Height" 
          Value="50" /> 
       </Trigger> 
       <DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}}" 
          Value="False"> 
        <Setter Property="Button.Height" 
          Value="50" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
    Foo Bar 
</Button> 

點擊該按鈕

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    (sender as FrameworkElement).IsEnabled = false; 
} 

感謝您的閱讀。

回答

0

兩個觸發器都可以工作。您明確設置了高度=「90」而它優先於您的風格!如果你想要它,你應該在樣式中設置初始高度,並從Button標籤中刪除它。

<Style TargetType="Button"> 
    <Setter Property="Button.Height" Value="90" /> 
    <Style.Triggers> 
     <Trigger Property="Button.IsEnabled" 
       Value="False"> 
      <Setter Property="Button.Height" 
        Value="50" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

我知道這是簡單而荒謬的事情,謝謝 – Gauthier

+0

:)不客氣! – Rekshino