我这里有一个很大的问题。我在我的绘图应用程序 (Caliburn.Micro) 中使用 MVVM,但我找不到合理的方法让它通过实时预览绘制形状。
绘图画布由一个获取输入并将数据提供给模型的画布和一个包含许多画布的网格组成,每一层一个。模型触发事件(我将以 Line 为例):
- 用于创建线的事件 - 它创建一个简单的线对象,具有起点、终点、颜色、粗细和自动生成的 ID 的属性。该事件具有添加到的行和层。
- 在鼠标移动时,在 1. 中创建的线对象的端点被更新,并以更新的形状及其图层作为参数触发一个新事件。
- 在鼠标上 2. 也会发生。
现在在注册到这些事件的 ViewModel 中,我只需向正确的画布添加一个等效的 WPF 形状(在本例中为 System.Windows.Shapes.Line),并在添加形状时设置参数。但是我想不出任何可以在移动鼠标以显示绘制形状的实时预览时更新形状参数的想法。
我尝试使用依赖属性,但它没有用,而且似乎有点矫枉过正(因为所有这些画布中的形状数量)。我也尝试过扩展 Line,但这是不可能的,因为类是密封的。我还需要与绘制的形状进行交互(例如调整大小、旋转)。