gpt4 book ai didi

c# - 将缩放值绑定(bind)到控件的大小

转载 作者:行者123 更新时间:2023-11-30 15:41:11 26 4
gpt4 key购买 nike

我有一个 Canvas,上面有一些图像(24x24 大小),我还有一个可以放大和缩小 Canvas 的滚动条。

我想让图像在调整 Canvas 大小时保持相同大小,所以我想到将图像的宽度/高度绑定(bind)到缩放值,以便它们的宽度/高度将取决于缩放值(所以,例如,它们将是 Width = Width/ZoomValue 或类似的东西)

如何使用 WPF 和绑定(bind)获得此行为?

谢谢!

最佳答案

假设图像的宽度均为 24,绑定(bind)到 ZoomValue 并使用 IValueConverter:
(ZoomValue 必须在您的 ViewModel 上)

<Image Source="..." Width="{Binding ZoomValue, Converter={StaticResource ZoomToWidthConverter}" />

还有 IValueConverter:

public class ZoomToWidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Double imgOriginalWidth = 24;
return imgOriginalWidth / System.Convert.ToDouble(value);
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Double imgOriginalWidth = 24;
return System.Convert.ToDouble(value) * imgOriginalWidth;
}
}

Canvas 的资源必须持有 ZoomToWidthConverter 的键:

<Canvas>
<Canvas.Resources>
<local:ZoomToWidthConverter x:Key="ZoomToWidthConverter " />
</Canvas.Resources>
</Canvas>

如果图像可以具有不同的原始宽度,请使用 MultiBinding 和 IMultiValueConverter。

关于c# - 将缩放值绑定(bind)到控件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com