Mos*_*ico 3 c# wpf canvas image viewbox
我想加载图像并将其放入视图框中。图像显示正确,但是,当我要获取它的宽度和高度时,它都是 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 不是有效值。
总结一下问题:
谢谢
PS Viewbox vb;,Image img;是一个全局变量,我只是缩短了脚本。PSS 我知道 Viewbox 的宽度和高度是否由数字初始化,比如说 100 和 100,它会起作用,我只是想知道如何获取图像的原始大小。
编辑:调整大小可以通过检测是否向上或向下滚动来实现e.Delta > 0(e.Delta < 0 
来源:http ://social.msdn.microsoft.com/Forums/vstudio/en-US/170c4fd0-1441-4d83-903d-594af75f8fb4 /检测鼠标滚动)
似乎该Image对象在该阶段尚未完全加载。我相信您可以使用该类Width的和Height属性。在此阶段应该已满载。ImageSource
ImageSource.Width 属性
ImageSource.Height 属性 
对于其他用户,您还可以从类(继承自该类)的ActualWidth和ActualHeight属性中找到所需的值,而不是更常见的和属性。ImageFrameworkElementWidthHeight
FrameworkElement.ActualHeight 属性
FrameworkElement.ActualWidth 属性 
| 归档时间: | 
 | 
| 查看次数: | 3773 次 | 
| 最近记录: |