Как использовать Drawingvisual в WPF?
У меня есть экран, который показывает тысячи точек и частота обновления составляет 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?