2017-08-30 17 views
0

ToggleButtonは、色を変えたり押したりすると色が変わらないようにするにはどうすればよいですか?これらのイベントでWindowsの選択色が引き続き得られます。フォアグラウンドとバックグラウンドの色を明示的に設定しようとしましたが、それは役に立ちません。ToggleButtonの選択色を無効にする

<ToggleButton 
    Canvas.Left="20" Canvas.Top="20" 
    Width="200" Height="150" 
    BorderBrush="Red" BorderThickness="5"> 
Click Me 
</ToggleButton> 

私によって色が定義されてアプリを起動した後:マウスで

enter image description here

をクリック色が青になる:

enter image description here

+2

それらの青い色は、ボタンのデフォルトに設定されていますコントロールテンプレートのトリガー。あなたはカスタムテンプレート – ASh

答えて

0

私はボタンのControlTemplateのスタイルを変更する方法をGoogleで検索し、それが今で正常に動作ASHのヒントのおかげで(このコードは、右のToggleButton要素に追加):

<ToggleButton.Style> 
    <Style TargetType="{x:Type ToggleButton}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ToggleButton"> 
        <Border BorderThickness="5" BorderBrush="Red" Background="Gray"> 
         <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsChecked" Value="True"> 
       <Setter Property="Background" Value="White" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</ToggleButton.Style> 
+1

を作成する必要がありますが、これは私が心に留めていたものですが、 - 'Trigger Property = "IsChecked" ... "は何も変更せず、削除でき、ボーダーは5px赤ではありません – ASh

0

はのテンプレートを変更しますButton少しトリガーを削除しました:

<Button Canvas.Left="20" Canvas.Top="20" 
     Width="200" Height="150" 
     BorderBrush="Red" BorderThickness="5" Content="Click Me"> 
    <Button.Template> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> 
       <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsDefaulted" Value="true"> 
        <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
       </Trigger> 
       <!--<Trigger Property="IsMouseOver" Value="true"> 
          <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/> 
         </Trigger> 
         <Trigger Property="IsPressed" Value="true"> 
          <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/> 
          <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/> 
         </Trigger>--> 
       <Trigger Property="IsEnabled" Value="false"> 
        <Setter Property="Background" TargetName="border" Value="#FFF4F4F4"/> 
        <Setter Property="BorderBrush" TargetName="border" Value="#FFADB2B5"/> 
        <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="#FF838383"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 
関連する問題