代码之家  ›  专栏  ›  技术社区  ›  laktak

WPF图像/渲染事件

  •  5
  • laktak  · 技术社区  · 14 年前

    我正在使用图像控件显示文档:

    <Image x:Name="cImage" SnapsToDevicePixels="True" ... />
    

    因为在屏幕上显示图像大约需要半秒钟,所以我首先显示一个预览:

    RenderOptions.SetBitmapScalingMode(cImage, BitmapScalingMode.NearestNeighbor);
    cImage.Source=...;
    

    然后我设置了一个计时器,将模式更改为高质量。

    WPF在完成渲染时是否触发了一个事件,我可以使用它来代替计时器?

    2 回复  |  直到 14 年前
        1
  •  1
  •   user569996 user569996    14 年前

    这不是图像的加载事件吗?

    http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.loaded.aspx ,则在呈现内容并准备好进行交互时启动。

    请注意,如果在加载图像控件后更改其内容,则不会再次触发加载的事件。

        2
  •  3
  •   osMike    13 年前

    根据您的源代码,更好的解决方案是在加载时添加一个处理程序。

    您可以尝试以下方法:

    BitmapImage src = new BitmapImage();
    src.BeginInit();
    src.UriSource = tURI;
    src.EndInit();
    imgImage.SetCurrentValue(Image.SourceProperty, src);
    src.DownloadCompleted += ImageDownloadCompleted;
    

    然后可以编写ImageDownloadCompleted的代码来更改分辨率。