OKので、それはまた、あなたが不透明度を減らすことによって、ボタンの上にある表示され、この方法が唯一のXAMLを必要として、私は、
これを考え出した私は、これが有効であることが見出さはるかにクリーンです。
<Style x:Key="OpacityButton" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border" BorderThickness="1"
Padding="2,2,2,2" BorderBrush="#FFEE82EE"
Background="{TemplateBinding Background}"
CornerRadius="5">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
この次の方法では、XAMLの後ろのコードを使用し、ちょうどXAMLを使用するなど、きれいではありませんが、私はあなたの背後にあるコードを使用する可能性がある場合があるかもしれません推測していますので、私はこの方法を表示するつもりです同じように。
<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
は、ボタンでIは場合
<Button Name="Button1" Style="{StaticResource TransparentStyle}" Grid.Column="0" Grid.Row="0" Height="50" Width="70" Click="Button1_OnClick" MouseEnter="Button1_OnMouseEnter" MouseLeave="Button1_OnMouseLeave">
<StackPanel Orientation="Horizontal">
<Image x:Name="image4" Stretch="UniformToFill" />
</StackPanel>
</Button>
が次にコードビハインドで、
private void Button1_OnMouseEnter(object sender, MouseEventArgs e)
{
string imageSource = @"c:\users\user\documents\visual studio 2015\Projects\TestAppForXAML\TestAppForXAML\Pics\1211794133.png";
image4.Source = new ImageSourceConverter().ConvertFromString(imageSource) as ImageSource;
}
private void Button1_OnMouseLeave(object sender, MouseEventArgs e)
{
string imageSource = @"c:\users\user\documents\visual studio 2015\Projects\TestAppForXAML\TestAppForXAML\Pics\1313321102.jpg";
image4.Source = new ImageSourceConverter().ConvertFromString(imageSource) as ImageSource;
}
これは、2つの画像間の切り替え、画像ソースを変更するMouseEnter
とMouseLeave
イベントを追加しましたマウスが入ったり出たりして、普通のマウスがあなたに与える効果が得られます。
'Background'プロパティではなく、' Image'をボタンの子として追加してみてください。 –
@LeiYang、私は元々そうしましたが、画像がボタンに適合することができなかったので、ImageBrushを使用しました。どうすればその問題に対処できますか? – KyloRen
Buttonにはマウスオーバーテンプレートが組み込まれているので、テンプレートも変更する必要があります。どのように[無効にする](http://stackoverflow.com/questions/1224439/how-do-you-disable-mouseover-effects-on-a-button-in-wpf)? –