gpt4 book ai didi

wpf - 如何使用 WPF 中的 slider 来放大和缩小图像?

转载 作者:行者123 更新时间:2023-12-04 18:18:49 28 4
gpt4 key购买 nike

我正在尝试使用 slider 来控制任何图像的放大和缩小。

我写了一个代码:

  private void image1_MouseMove(object sender, MouseEventArgs e)
{
if (!image1.IsMouseCaptured) return;
var tt = (TranslateTransform)((TransformGroup)
image1.RenderTransform).Children.First(tr => tr is TranslateTransform);
Vector v = start - e.GetPosition(border1);
tt.X = origin.X - v.X;
tt.Y = origin.Y - v.Y;
}

在这里它工作正常。使用鼠标滚动。但我想将 slider 用于相同的功能。

但无法使用 slider 进行鼠标滚动等相同行为。
我对 WPF 及其控件非常陌生,因此非常感谢任何有关细节的帮助。

如何使用 slider 实现与放大相同的功能?

最佳答案

经过大量研究和编码后,我发现它是一个非常简单的应用程序和非常简单的编码,可以使用 slider 放大和缩小图像。您需要在您选择的区域放置一个 slider 。并输入以下代码。

private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
TransformGroup transformGroup = (TransformGroup)image1.RenderTransform;
ScaleTransform transform = (ScaleTransform)transformGroup.Children[0];

double zoom = e.NewValue;
transform.ScaleX = zoom;
transform.ScaleY = zoom;
}

现在我已经有了代码,以便使用鼠标滚轮放大和放大图像。
    private void image1_MouseWheel(object sender, MouseWheelEventArgs e)
{
TransformGroup transformGroup = (TransformGroup)image1.RenderTransform;
ScaleTransform transform = (ScaleTransform)transformGroup.Children[0];

double zoom = e.Delta > 0 ? .2 : -.2;
transform.ScaleX += zoom;
transform.ScaleY += zoom;

slider1.Value += zoom;
}

现在当你放
   slider1.value += zoom;

然后鼠标滚轮的变化和 slider 的变化会改变图片的缩放比例。

记住鼠标滚轮和 slider 在实现上的区别。在鼠标滚轮 MouseWheelEventsArgs "e"和 e.Delte 值的正负取决于鼠标滚轮向上或鼠标滚轮向下。但在Slider RoutedPropertyChangesEventsArgs 值是正数还是负数根据sldier 上下。您无需在此处指定。只是
 zoom = e.NewValue;

我希望它会有所帮助。

关于wpf - 如何使用 WPF 中的 slider 来放大和缩小图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155959/

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