現象
ボタン押下時の薄青の着色を解除したい。Templateを書き換える事で対応したが何故か有効にならない。
コード
IsPressed, IsMouseOver, IsFocused, IsCancel, IsEnabled, IsHitTestVisible, IsStylusOverなどが指定可能。
原因
Button Styleにスタイルを指定にした場合に、Resources.Templateがどうも有効とならない。これは適用順序がある為であろうか?または、その設定により何かが見つからなくなっている、相対パスが異なり not foundが起きているのだろうか?
回避策
Button Styleではなく、Resources.Style の BasedOnで指定する。
ボタン押下時の薄青の着色を解除したい。Templateを書き換える事で対応したが何故か有効にならない。
コード
<Button Content="ボタン1" Style="{StaticResource BS1}">
<Button.Resources>
<Style TargetType="{x:Type Button}">
<-- templateを書き換え、mouseoverでの着色を解除する -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<-- templateを置き換えるので border を再書換え? -->
<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>
<-- IsPressed中は background ではなく borderで表現する -->
<Trigger Property="IsPressed" Value="true">
<Setter Property="BorderBrush" Value="#FFBEE6FD"/>
<Setter Property="BorderThickness" Value="4"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Resources>
</Button>
IsPressed, IsMouseOver, IsFocused, IsCancel, IsEnabled, IsHitTestVisible, IsStylusOverなどが指定可能。
原因
Button Styleにスタイルを指定にした場合に、Resources.Templateがどうも有効とならない。これは適用順序がある為であろうか?または、その設定により何かが見つからなくなっている、相対パスが異なり not foundが起きているのだろうか?
回避策
Button Styleではなく、Resources.Style の BasedOnで指定する。
<Button>
<Button.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource BS1}">