C# 如何在WPF中以优化的方式绘制许多形状?

C# 如何在WPF中以优化的方式绘制许多形状?,c#,wpf,xaml,binding,drawing,C#,Wpf,Xaml,Binding,Drawing,我正在创建一个WPF应用程序,它需要显示大约100个数字,在正方形区域用图像背景改变小菱形和圆形10px的形状。我知道这不是很多形状,方法也不重要 但我想知道并学习在WPF应用程序中显示许多小的移动形状的最有效的WPF方法 另外,我想知道为绘制这些元素提供新坐标的最佳方法是什么 我所拥有的: 对于传递数据,我有一个简单的点数组。每帧60fps我移除一个数组并通过事件发送一个新的。然后清除屏幕并绘制所有形状。但它的性能很差 我在想我应该使用XAML和绑定。但我真的不知道如何设定出价。 问:如何在X

我正在创建一个WPF应用程序,它需要显示大约100个数字,在正方形区域用图像背景改变小菱形和圆形10px的形状。我知道这不是很多形状,方法也不重要

但我想知道并学习在WPF应用程序中显示许多小的移动形状的最有效的WPF方法

另外,我想知道为绘制这些元素提供新坐标的最佳方法是什么

我所拥有的: 对于传递数据,我有一个简单的点数组。每帧60fps我移除一个数组并通过事件发送一个新的。然后清除屏幕并绘制所有形状。但它的性能很差

我在想我应该使用XAML和绑定。但我真的不知道如何设定出价。
问:如何在XAML中设置绑定以显示许多小形状,这些小形状的坐标在列表中随点一起提供。

或者可能会有帮助。@Clemens谢谢您的帮助。我明白我需要在我的实体中暗示我画的东西是不适当的改变。一旦所有实体都更新了,有什么好办法要求重新绘制吗?有多个属性会更改,但我想一次重画它们。您不需要进行任何显式重画。WPF关心以一种有效的方式来做这件事。相反,您通常将一个目标属性(例如Canvas)绑定到一个源属性(例如X)。当源属性发生更改时,必须更新绑定。因此,您需要做的就是实现INotfiyPropertyChanged。在更复杂的场景中,通过多重绑定将单个目标属性绑定到多个源属性,您可以推迟引发PropertyChanged事件,直到所有源属性都发生更改。@Clemens,谢谢。我知道WPF知道它在做什么。但我如何以批处理重画BindingList的所有元素的方式来实现它呢?我可以手动调用PropertyChanged事件吗?当我绑定到对象的多个属性时会发生什么?当然可以。视图模型可以随时引发PropertyChanged事件。您甚至可以传递null或空字符串作为属性名,以表示所有属性都已更改。