2016-09-03 11 views
0

は、私はそれを有効にするか無効にするのいずれかのためにWPFボタンの一般的なスタイルを作ってみる述べてこれは実行時に次の例外を生成します。WPFボタンの一般的なスタイルは

"Style object is not allowed to affect the Style property of the object to which it applies." 

この共通のスタイルをボタンの両方の状態に適用するにはどうすればよいですか?そして、スタイルだけでボタンのテンプレートをオーバーライドしなくてもいいですか?

答えて

1

のために私は、@ adminSoftDKの答えの助けを借りて、私の解決策を見つけました。私は両方のトリガープロパティで同じスタイルを設定しました。

<Style x:Key="btnStyle" TargetType="{x:Type Button}"> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="True"> 
      <Setter Property="Foreground" Value="#FFFFFFFF"/> 
      <Setter Property="BorderBrush" Value="#FFCFFFFF"/> 
     </Trigger> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Foreground" Value="#FFFFFFFF"/> 
      <Setter Property="BorderBrush" Value="#FFCFFFFF"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
2

あなたbtnStyleスタイルであり、すべてのあなたが有効になっている間に変更したいプロパティまたは無効にトリガー内行き、例

<Style x:Name="btnStyle" x:Key="btnStyle" TargetType="{x:Type Button}"> 
    <Setter Property="Foreground" Value="#FFFFFFFF"/> 
    <Setter Property="BorderBrush" Value="#FFCFFFFF"/> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="True"> 
      <Setter Property="Content" Value="Enabled" /> 
     </Trigger> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Content" Value="Disabled" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

私はスタイルを変更したくありません。私はちょうど同じ状態が変化しているかどうか同じであることを望みます。 –

関連する問題