Wpf 当IsEnabled为false时更改图像源
每当图像被禁用/启用时,我尝试更改图像的源属性。 我签出,这是有效的,每当图像被禁用的不透明度是改变。但是,只要我尝试设置Source属性,它就是不起作用。它被忽略了。 这是我的标记:Wpf 当IsEnabled为false时更改图像源,wpf,xaml,Wpf,Xaml,每当图像被禁用/启用时,我尝试更改图像的源属性。 我签出,这是有效的,每当图像被禁用的不透明度是改变。但是,只要我尝试设置Source属性,它就是不起作用。它被忽略了。 这是我的标记: 我错过什么了吗?甚至可以更改源属性吗?因此,只有在不为源属性设置,而是通过样式设置的情况下,此操作才有效: <Image Width="75"> <Image.Style> <Style TargetType="Image">
我错过什么了吗?甚至可以更改源属性吗?因此,只有在不为源属性设置,而是通过样式设置的情况下,此操作才有效:
<Image Width="75">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.png"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.disabled.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
因此,只有在不为源属性设置a,而是通过样式设置它时,此选项才会起作用:
<Image Width="75">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.png"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.disabled.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
您的问题是您在声明图像时对图像进行了“硬编码”。Source
值。您还需要将其移动到样式。试试这个:
<Image Width="75">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.png"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.disabled.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
这是因为WPF有许多不同的方法来更新dependencProperty
,因此有一个指定哪些源应该能够覆盖从其他源所做的更改的方法。根据此列表,本地设置值将覆盖样式触发器
中的一个设置,但样式触发器
中的一个设置将覆盖样式设置器
中的一个设置
请参阅链接页面以了解更多信息。您的问题是您在声明图像时对图像进行了“硬编码”。Source
值。您还需要将其移动到样式。试试这个:
<Image Width="75">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.png"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source"
Value="/My_Project;component/Images/countdown.disabled.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
这是因为WPF有许多不同的方法来更新dependencProperty
,因此有一个指定哪些源应该能够覆盖从其他源所做的更改的方法。根据此列表,本地设置值将覆盖样式触发器
中的一个设置,但样式触发器
中的一个设置将覆盖样式设置器
中的一个设置
有关这方面的更多信息,请参阅链接页面。LOL!我们在这里写的是相同的答案吗+1还提到了依赖属性值优先级。太好了,谢谢@谢里登:对不起,我不能把你的回答也标记为接受,我只是长期选择了第一个:)谢谢你们两个@DavideDeSantis,我非常高兴您能将公认的答案授予您喜欢的任何人,但仅供将来参考,我们应该授予最佳答案,而不是第一个答案。@Sheridan我知道,您当然是对的。我只是想你基本上写了同样的东西,但我又读了一遍,你的答案比克莱门斯的更详细一点,所以你来吧,更正:)我不是想让你改变这个问题的公认答案。。。这就是为什么我在我的评论中只放了一些供将来参考的东西。哈哈!我们在这里写的是相同的答案吗+1还提到了依赖属性值优先级。太好了,谢谢@谢里登:对不起,我不能把你的回答也标记为接受,我只是长期选择了第一个:)谢谢你们两个@DavideDeSantis,我非常高兴您能将公认的答案授予您喜欢的任何人,但仅供将来参考,我们应该授予最佳答案,而不是第一个答案。@Sheridan我知道,您当然是对的。我只是想你基本上写了同样的东西,但我又读了一遍,你的答案比克莱门斯的更详细一点,所以你来吧,更正:)我不是想让你改变这个问题的公认答案。。。这就是为什么我在我的评论中只放了一个供将来参考的地方。我喜欢你的代码格式,它可以避免水平滚动条:-)我们可以在这个网站上使用自动文本包装。。。它早就过期了我喜欢你避免水平滚动条的代码格式:-)我们可以在这个网站上使用自动文本包装。。。它早就过期了