首页 > 解决方案 > WPF - 在绑定触发期间 ImageSource 更改后图像失真

问题描述

所以我有一个图像,它有一个 Source 属性。ImageSource该属性使用 Binding从 ViewModel获取属性。然而,绑定正在使用,并且转换器根据鼠标是否在控件上IValueConverter返回不同。ImageSource由于屏幕具有高 DPI 以及控件的外观,因此必须将一些属性设置为 Image:

<Image Source="{Binding Filter.IsEnabled, Converter={StaticResource IsEnabledToImageSourceConverter}}"
       UseLayoutRounding="False"
       Stretch="None"
       Width="45"
       Height="45"
       Cursor="Hand" />

代码工作......有点。将鼠标悬停在控件上时,图像会发生变化,但不会调整。

没有悬停 - 图像大小合适:

大小合适的位图

悬停 - 图像失真:

在此处输入图像描述

图像是按钮的内容,按钮有一个自定义ControlTemplate来摆脱它的图形。没有VisualStateGroups设置。这是我错过的一些其他人都知道的 WPF 技巧,还是我在做的?

标签: wpfbindingdpiivalueconverterimagesource

解决方案


Stretch="Uniform"

正如 PJRobot 所建议的那样确实有效。这并不理想,因为我的图像大小不同,数据模板将对此进行解释,但至少图像大小保持不变。

谢谢。


推荐阅读