我在这里有很大的问题。我在绘图应用程序(Caliburn.Micro)中使用了MVVM,但找不到一种合理的方法来使它通过实时预览来绘制形状。
绘图 Canvas 包括一个获取输入并将数据馈送到模型的 Canvas ,以及一个包含许多 Canvas 的网格,每层一个。该模型触发事件(我将使用Line作为示例):
现在,在注册这些事件的ViewModel中,我只需要添加等效的WPF形状(在本例中为System.Windows.Shapes.Line)来校正 Canvas ,并在添加形状时设置参数即可。但是我无法想到在移动鼠标以实时显示绘制的形状时更新形状参数的鲁棒性。
我尝试使用依赖项属性,但是它没有用,而且似乎有点过大(因为所有这些 Canvas 中都包含许多形状)。我也尝试过扩展Line,但是不可能,因为该类是密封的。我还需要与绘制的形状进行交互(例如,调整大小,旋转)。
最佳答案
我将研究writeablebitmap和WriteableBitmapEx扩展。这将具有相当好的性能,具体取决于您必须渲染多少个东西。如果您需要一次在屏幕上显示1000多个内容,则可能需要考虑将DirectX与SlimDx或SharpDx这样的包装一起使用。
关于wpf - 在WPF中更新Shapes值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250735/