Поддержка. NET Графики каркаса были перемещены в. NET Ядро, но как продолжать рисовать изображение? - PullRequest
2 голосов
/ 26 марта 2020

Система. Windows .Формы были перемещены в. NET Ядро и теперь доступны в виде пакета NuGet.
Кажется, Microsoft специально перечислила компоненты, которые не были перемещены:
https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -контроли

Мне нужно перенести использование функции построения диаграмм в:
с использованием System. Windows .Forms.DataVisualization.Charting;
Когда я использую функциональность рисования базового класса управления, я получаю следующую ошибку:
Тип 'Управление' определяется в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку 'System. Windows .Forms, Version = 4.0.0.0

Когда I go к определению класса Charts, оно показывает:

public class Chart :Forms.Control 

С ключевыми словами до двоеточия, но не после.
Так что каким-то образом Forms.Control недоступен, но код компилируется ...

Следующие функции взяты из базового класса Control и теперь больше не доступны:
- BeginInit; Начните вставлять в граф компоненты
- EndInit; Завершено размещение в графе компонентов
- Обновление; Визуально показать график на экране
- SaveImage; Запись графических изображений в поток памяти

Как эти функции могут быть реализованы в. NET CORE?

Поскольку System. Windows .Forms были перенесены в. NET Я добавил в него использование кода, это не помогает.
Я установил пакет NuGet для Microsoft. Windows .Совместимость, это тоже не помогло.

Редактировать:
Я установил следующие пакеты NuGet:

System.Windows.Forms.DataVisualization 1.0.0-prerelease.20110.1
System.Drawing.Common 4.7.0
Microsoft.Windows.Compatibility 3.1.0

Я пытался установить последнюю версию Предварительная версия, но она пытается обновить все виды зависимостей до 5.0.0-preview.1.20120.5, который не может быть найден.
Следующие свойства были добавлены следующие свойства в мой .csproj

<UseWpf>true</UseWpf>
<UseWindowsForms>true</UseWindowsForms>

1 Ответ

2 голосов
/ 26 марта 2020

Как эти функции могут быть реализованы в. NET CORE?

Программирование. Много программирования. Тем не менее ...

... учитывая сообщения в https://github.com/dotnet/winforms/issues/112 Я бы предположил, что ошибка на вашем конце. Ссылка указывает, что это было исправлено в апреле 2019 года с помощью .NTE core 3.0 preview 5, где это упоминается как порты.

На сегодняшний день https://www.nuget.org/packages/System.windows.forms.datavisualization перечисляет DataVisualization как в предварительном просмотре , По состоянию на месяц go указывает на то, что он ПОЛУЧИЛ ряд обновлений, поскольку этому пакету nuget исполнился месяц, но вам необходимо:

  • явно импортировать его
  • Разрешить предварительные просмотры для импорта.

Ссылка на github для этого находится в https://github.com/dotnet/winforms-datavisualization

Обратите внимание, что readme на состояниях github:

«Этот репозиторий предназначен только для чтения. Мы рассматриваем Систему. Windows .Forms.DataVisualization устарела, и мы предоставляем ее только для упрощения портирования на. NET Core 3. Мы не собираемся вводить новшества в этом компоненте и впоследствии будем не принимать PR. "

Этот тип противоречит символу предварительного просмотра (по крайней мере, он должен его выпустить).

Не использую его сам. Это в основном то, что я мог найти с минутой поиска в Google, начиная с пространства имен и «ядра» в качестве ключевых слов.

В долгосрочной перспективе вы можете рассмотреть переход на коммерческий компонент построения диаграмм. У меня большой опыт работы с SciChart, но это действительно высокопроизводительный компонент. Практически у каждой библиотеки компонентов есть такой.

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