Нужна помощь в преобразовании пользовательских элементов управления форм C # Windows в пользовательские элементы управления C # Universal Windows Platform - PullRequest
0 голосов
/ 23 октября 2019

Я конвертирую приложение форм Windows C # в приложение универсальной платформы C # Windows. В этом приложении есть пользовательские элементы управления, которые используют событие Paint для добавления метода обработчика. В этом обработчике вы получаете объект PaintEventArgs, а оттуда объект Graphic, где можно рисовать. Мне нужно сделать то же самое в UWP, но я не нашел способ получить графический объект в UWP.

Для того, что я видел, вы можете создавать собственные элементы управления в UWP, только составляя другие элементы управления, которыеПлатформа обеспечивает и путем настройки их параметров. Но этого недостаточно для моего приложения. Мне нужен объект Graphics для точного рисования. Есть ли способ получить этот графический объект в UWP? Я знаю, что с помощью пакета инструментов MSIX вы можете создать установщик для Магазина Windows из приложения Windows Forms, но мне бы хотелось, чтобы мое приложение было непосредственно в UWP.

Кроме того, я знаю, что в Android дажеесли он также основан на XAML, можно расширить класс View в java и переопределить метод OnDraw. Есть ли что-то эквивалентное в Window UWP?

При использовании Visual Studio пример кода формы C # windos:

partial class MyCustomButton
{
    ...

    private void InitializeComponent()
    {           
        ...
        this.Paint += new System.Windows.Forms.PaintEventHandler(this.MyCustomButton_Paint);
    }

 }

public partial class MyCustomButton : Button
{
    public MyCustomButton()
    {
        InitializeComponent();
    }

    private void MyCustomButton_Paint(object sender, PaintEventArgs e)
    {

        Graphics g = e.Graphics;

        ...

        /// Drawing on g

    }

}

Может ли нечто подобное быть сделано в UWL, даже если это XAMLисходя из? Можно ли получить графический объект? (Я знаю, что в Android это возможно).


Из-за полученных комментариев я собираюсь добавить информацию и постараюсь быть более конкретным. Приложение C. Windows.Form, которое мы хотим обновить, - это инструмент для рисования и редактирования диаграмм определенных инженерных процессов. Он вычисляет точки и рисует линии в подклассах класса UserControl, в частности в обработчиках события Paint. Я хотел бы повторно использовать все эти вычисления и код при обновлении до UWP, но мне кажется, что это можно сделать, только если графический объект доступен для рисования. Вот почему я хотел бы знать, можно ли получить этот графический объект в UWP, и если это невозможно, мне хотелось бы получить некоторые рекомендации о том, как повторно использовать весь этот код рисования, который уже есть в версии приложения на C # Windows.Form. ,Спасибо за все ответы.

1 Ответ

0 голосов
/ 25 октября 2019

Класс Graphics из пространства имен System.Drawing аналогичен классу CanvasDrawingSession в Win2D. Win2D доступен для приложения UWP, добавив пакет Win2D NuGet в ваш проект.

Существует аналогичная нить , вы можете обратиться к ней. И я следовал примеру кода этого официального сайта , чтобы добавить графику, это работало хорошо. Таким образом, вы можете попробовать использовать библиотеку Win2D для реализации тех же функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...