我想加载一个图像并将其放入视图框。 图像显示正确,但是,当我要得到它的宽度和高度时,它都是NaN。为什么图像大小是NaN(wpf)以及如何通过鼠标滚轮调整大小?
这是我的图片加载代码:
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);
我想要得到的图像的宽度和高度,所以我可以调整它的大小(通过视框中调整大小)后在应用程序内部的原因。
任何想法如何获得图像的维度?
这是我要如何调整其大小(通过鼠标滚轮)
private void cnv_MouseWheel(object sender, MouseWheelEventArgs e)
{
if (vb != null)
{
vb.Width += Mouse.MouseWheelDeltaForOneLine;
vb.Height += Mouse.MouseWheelDeltaForOneLine;
}
}
并返回错误,并表示vb.Width不是有效的值。
问题,总结这件事:
- 如何获得在WPF图像的宽度/高度?
- 如何通过鼠标滚轮调整视图框的大小(这也会导致图像大小调整)?例如,如果我向上滚动轮,宽度和高度加1,如果我向下滚动轮,宽度和高度由1
降低谢谢
P.S. Viewbox vb;
和Image img;
是一个全局变量,我只是缩短了脚本。 P.S.S. 我知道如果视图框的宽度和高度由一个数字初始化,可以说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)来实现
尝试使用'ActualWidth'和'ActualHeight'属性,而不是。 – Sheridan
它在宽度和高度而不是NaN上都返回0。 –
[msdn](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.image.source.aspx)上的用法不同。也许你必须使用'BitmapImage'(而不是'Image')来获得大小。 – Sinatr