我希望加载一张图片并将其放入视口中。图片正确显示,但是当我想获取它的宽度和高度时,它们都是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);
我需要获取图片的宽度和高度,这样我才能在应用程序中稍后通过视口大小调整来缩放它。
有任何方法可以获取图像尺寸吗?
以下是我将如何通过鼠标滚轮进行调整大小:
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. 我知道如果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)
ActualWidth
和ActualHeight
属性。 - SheridanBitmapImage
(而不仅仅是Image
)来获取大小。 - Sinatr