我有一个显示数千个点的屏幕,刷新率为10毫秒。 首先我遇到了问题,因为渲染很慢而且很紧张。 我搜索互联网的人建议我将形状转换为视觉形状,因为形状有很多事件,而且渲染很重。我将点数改为像这样的视觉效果:
public class MyVisualHost : FrameworkElement{
// Create a collection of child visual objects.
private VisualCollection _children;
public MyVisualHost()
{
_children = new VisualCollection(this);
...
}
// Provide a required override for the VisualChildrenCount property.
protected override int VisualChildrenCount
{
get { return _children.Count; }
}
// Provide a required override for the GetVisualChild method.
protected override Visual GetVisualChild(int index)
{
if (index < 0 || index >= _children.Count)
{
throw new ArgumentOutOfRangeException();
}
return _children[index];
}}
表现仍然是不可接受的。问题是形状和FrameworkElement之间的区别是什么。两者都有很多事件使得它们很难渲染。我想要一些没有事件的东西。我该怎么办?!
实际上我想将这些视觉效果添加到画布并使用canvas.setLeft和canvas.setTop为它们提供位置。如何在不继承FrameworkElement的情况下执行此操作?