gpt4 book ai didi

c# - 为什么图像大小是 NaN (wpf) 以及如何通过鼠标滚轮调整大小?

转载 作者:行者123 更新时间:2023-12-05 02:23:17 25 4
gpt4 key购买 nike

我想加载图像并将其放入 View 框。 图像显示正确,但是,当我要获取它的宽度和高度时,它们都是 NaN。

这是我的图片加载代码:

Image img = new Image();
img.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("1.png");

Viewbox vb = new Viewbox();

vb.Width = img.Width;
vb.Height = img.Height;

vb.Child = img;

cnv.Children.Add(vb);

我想要获取图像宽度和高度的原因是我可以稍后在应用程序中调整它的大小(通过调整 View 框大小)。

知道如何获取图像尺寸吗?

这就是我要调整它的大小(通过鼠标滚轮)

    private void cnv_MouseWheel(object sender, MouseWheelEventArgs e)
{
if (vb != null)
{
vb.Width += Mouse.MouseWheelDeltaForOneLine;
vb.Height += Mouse.MouseWheelDeltaForOneLine;
}
}

它返回错误并指出 vb.Width 不是有效值。

总结问题:

  1. 如何在wpf中获取图片的宽/高?
  2. 如何通过鼠标滚轮调整 View 框的大小(这也会导致图像调整大小)?例如,如果我向上滚动滚轮,则宽度和高度加 1,如果我向下滚动滚轮,则宽度和高度减少 1。

谢谢

附言Viewbox vb;Image img;是一个全局变量,我只是把脚本缩短了。附言我知道如果 Viewbox 的宽度和高度由一个数字初始化,比如说 100 和 100,它会起作用,我只是想知道如何获得图像的原始大小。

编辑:调整大小可以通过检测 e.Delta > 0 来检测它是向上滚动还是向下滚动来实现。或 e.Delta < 0(来源:http://social.msdn.microsoft.com/Forums/vstudio/en-US/170c4fd0-1441-4d83-903d-594af75f8fb4/detect-mouse-scroll)

最佳答案

似乎 Image 对象在那个阶段没有完全加载。我相信您可以使用 ImageSource classWidthHeight 属性反而。这应该在这个阶段完全加载。

ImageSource.Width Property
ImageSource.Height Property

对于其他用户,您还可以从 Image 类的 ActualWidthActualHeight 属性(继承来自 FrameworkElement 类)而不是更常见的 WidthHeight 属性。

FrameworkElement.ActualHeight Property
FrameworkElement.ActualWidth Property

关于c# - 为什么图像大小是 NaN (wpf) 以及如何通过鼠标滚轮调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23777974/

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