Как использовать 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?

0 ответов

Другие вопросы по тегам