2017-06-20 24 views
0

ボタンのテンプレートを使用します。今、私は実行時にテンプレートを変更したいと思っています。しかし、このテンプレートでは動作しません。 テンプレートは次のようになります。WPFボタンXAMLテンプレート

<Application.Resources> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="OverridesDefaultStyle" Value="true"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Border Name="Border" Background="Transparent"> 
         <ContentPresenter RecognizesAccessKey="True"/> 
        </Border> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsKeyboardFocused" Value="true"> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" /> 
         </Trigger> 
         <Trigger Property="IsDefaulted" Value="true"> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" /> 
         </Trigger> 
         <Trigger Property="IsMouseOver" Value="true"> 
          <Setter TargetName="Border" Property="Background" Value="Transparent" /> 
         </Trigger> 
         <Trigger Property="IsPressed" Value="true"> 
          <Setter TargetName="Border" Property="Background" Value="Transparent" /> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" /> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="false"> 
          <Setter TargetName="Border" Property="Background" Value="Transparent" /> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" /> 
          <Setter Property="Foreground" Value="Transparent"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Application.Resources> 

私はそのためのアプリケーション・リソースなど、異なるウィンドウ上でそれを使用しました。 このテンプレートにアクセスして一部のボタンだけ変更するにはどうすればよいですか? 私は別のテンプレートを作成することを考えました。しかし、実行時にバックグラウンドなどのものを変更できる場所を作成するにはどうすればよいですか?

+0

どうしたのですか?何を試しましたか? –

+1

基本スタイルにキー属性を追加し、そのキーをボタンで使用します。style.similar https://stackoverflow.com/a/19366835/2745294 –

+0

これをベースにするのは本当に面白いです。私はそれを試して、感謝します。 –

答えて

0

あなたはX与えれば:あなたのリソースへの鍵を、あなたはこのような何か行うことができるはず。そして、

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/MyProject.Styles;component/ButtonStyles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 

ちょうど使用:

<Button> 
<Button.Style> 
    <Style BasedOn="{StaticResource StyleFromButtonStyles}" TargetType="Button"> 

をそしてStyle.Setterで上書きあなたが変更したいプロパティ

関連する問題