使用IValueConverter调整绑定到数据源的图像大小
本文关键字:图像 数据源 IValueConverter 调整 绑定 使用 | 更新日期: 2023-09-27 18:18:56
我有一个图像文件绑定到Grid中的image元素,如下所示
<FlipView x:Name="FlipView" ItemsSource="{Binding Source={StaticResource ItemsViewSource}}" SelectionChanged="FlipView_SelectionChanged">
<FlipView.ItemTemplate>
<DataTemplate>
<Grid SizeChanged="Grid_SizeChanged">
<Image Source="{Binding File, Converter={StaticResource ImageConverter}}" Stretch="None" />
</Grid>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
图像被设置为不拉伸,因为我正在IValueConverter内部进行大小调整,以便小图像不会像素化,而大图像仍然缩小以适应屏幕。
当我的应用程序的大小发生变化时,我如何触发IValueConverter重新计算当前显示的图像的大小?
实现INotifyPropertyChanged
接口,当你的应用大小改变时,设置File属性值
public PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
private String file;
public String File
{
get
{
return file;
}
set
{
file = value;
NotifyPropertyChanged("File");
}
}