【发布时间】:2015-06-11 11:05:57
【问题描述】:
我正在将一个旧的 WinForms 项目移植到 WPF,但遇到了障碍。在这个旧的 WinForms 项目中,我使用的是每秒绘制一个图像的图片控件。除此之外,我还重写了控件“Paint”事件,以便在图像已设置后在图像顶部绘制自定义内容。
所以例如我的代码流程是这样的:
private void timer1_Tick(object sender, System.EventArgs e)
{
pictureBox1.Load("some/image/path");
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
// do custom drawing on top of the picture here..
}
WPF 不提供直接的“Paint”事件,所以我不确定我应该如何将它正确地移植到 WPF 并仍然保持 MVVM 模式。
所以我的问题是:
- 使用图像控件是否适合此设置?
- 我应该如何在 WPF 中重新创建这种类似的设置,我可以根据需要更新图像,然后在其上绘制东西。
我的意图是保持传统的 MVVM 模式,但在加载后仍然能够在图像上绘图。所有的绘图都是从应用程序内部完成的,没有用户对绘图的交互。我基本上是在地图图像上实时绘制带有兴趣点的地图。地图是静态的,不会像 Google 的图块那样分成几块,所以我直接从磁盘加载没有问题。
【问题讨论】: