как снизить нагрузку при рисовании на Canvas wpf

101
30 декабря 2020, 07:50

При рисовании на canvas'е загружает ЦП до 60%.

Нужно ли вместо этого юзать pathGeometry, возможно потом допилить функционал, минимально как в Paint'е? Код:

private void MainCanvas_MouseDown(object sender, MouseButtonEventArgs e)
    {
        mousePosition = e.GetPosition(mainCanvas);
        poly = new Polyline()
        {
            StrokeDashCap = PenLineCap.Round,
            StrokeThickness = 1,
            Stroke = new SolidColorBrush(Colors.Red),
        };
        mainCanvas.Children.Add(poly);
    }
    private void MainCanvas_MouseMove(object sender, MouseEventArgs e)
    {
        customCursor = e.GetPosition(mainCanvas);
        Canvas.SetTop(el, customCursor.Y - cursorRadius/2);
        Canvas.SetLeft(el, customCursor.X - cursorRadius/2);
        if (e.LeftButton == MouseButtonState.Pressed)
        {
            poly.Points.Add(mousePosition);
            mousePosition = e.GetPosition(mainCanvas);
            poly.Points.Add(mousePosition);
        }
    }
    private void MainCanvas_MouseUp(object sender, MouseButtonEventArgs e)
    {
        if(e.LeftButton == MouseButtonState.Released)
            polyUndoStack.Push(poly);
    }
READ ALSO
Заменить символы в TextBox для ввода пароля C# WPF MVVM

Заменить символы в TextBox для ввода пароля C# WPF MVVM

Так исторически сложилось, что необходимо использовать TextBox для ввода логина и пароляКак правильно организовать замену символов в текстовом...

135
Unity сцена внутри картинки

Unity сцена внутри картинки

У меня есть картинка для экрана игры, но она с полями (счет, уровень и тп)

108
XML файл при чтении выдаёт ошибку

XML файл при чтении выдаёт ошибку

Пытаюсь прочитать XML файл

133