WPF-绑定触发期间ImageSource更改后图像失真

时间:2019-02-11 11:26:28

标签: wpf binding dpi ivalueconverter imagesource

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

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

代码工作正常。将鼠标悬停在控件上时,图像会更改,但不会调整。

没有悬停-图片尺寸合适:

PouchDB site

悬停时-图片变形:

A nicely sized bitmap

图像是按钮的内容,按钮具有自定义ControlTemplate以摆脱其图形。未设置VisualStateGroups。这是其他人都不知道的WPF技巧,还是我所缺少的?

1 个答案:

答案 0 :(得分:0)

Stretch="Uniform"
PJRobot建议的

实际上有效。这不是理想的选择,因为我的图像大小不同,并且数据模板会考虑到这一点,但是至少图像大小保持不变。

谢谢。