我使用这组资源来创建一个按钮样式,在悬停,单击和空闲状态时更改按钮上的图像。
<Window.Resources>
<Image x:Key="LoginIdle" Source="/content/images/btn-login-idle.png" />
<Image x:Key="LoginHover" Source="/content/images/btn-login-hover.png" />
<Image x:Key="LoginActive" Source="/content/images/btn-login-active.png" />
<Style x:Key="LoginButtonStyle" TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Content" Value="{StaticResource LoginIdle}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource LoginIdle}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{DynamicResource LoginActive}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
我试着按下按钮。
<Button Style="{DynamicResource LoginButtonStyle}" Name="LoginButton" Click="LoginBtn_Click">
</Button>
问题是,图像不存在。
我还尝试在按钮上设置内容值,只是更改后端代码上的图像,但是当我尝试使背景透明时,我的图像周围有一个边框。我认为这是因为按钮的自然行为。不太确定。
总之,我想要完成的是在按钮上添加空闲图像,在悬停时更改图像,按下并离开按钮。
答案 0 :(得分:0)
所有图片都不存在吗?或者只有空闲的?
如果只有空闲映像不存在,您是否尝试在触发器之前设置背景属性而不是Content属性?并使用像触发器一样的动态资源?
答案 1 :(得分:0)
对于那些对我的问题的答案感兴趣的人。做了额外的研究。我发现我需要在ControlTemplate中添加这一行。
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
然后所有触发器都能正常工作。