Использование System. Windows in. NET Core - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть проект в Visual Studio 2019, с которого я перехожу. NET Framework 4.6 на. NET Core 3.1.

Я использовал руководство от Microsoft для переноса своего проекта, , описанное здесь . Я запустил Portability Analyzer и он показал, что проект на 100% переносим.

Но все зависимости от System. Windows больше не работают. Например я использую System.Windows.Rect. В официальной документации четко указано, что она доступна для. NET Core 3.1.

В коде, однако, он помечает Rect как "Тип или имя пространства имен" Rect "не может быть найдены (вы пропустили директиву использования или ссылку на сборку?) "и наверху она помечает мой using System.Windows серый с сообщением" Использование директивы ненужно ".

Эта ошибка относится ко многим вещам в мой код, например System.Windows.ResourceDictionary, System.Windows.Application.Current, System.Windows.Point, ...

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

Я искал System.Windows в менеджере пакетов NuGet и гуглил его , но ничего не смог найти.

Итак, вот мой вопрос: как я могу использовать System.Windows в. NET Core 3.1 проекте с Visual Studio 2019? На данный момент я предполагаю, что мне нужно вручную включить сборку WindowsBase.dll, но в моем каталоге установки (C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional) я могу найти только одну в C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\Microsoft\LiveShare\Agent, и она, кажется, не подходит.

1 Ответ

0 голосов
/ 21 апреля 2020

Исходя из вашего описания, вы хотели бы использовать System. Windows .Rect в. NET Core 3.1

проекте с Visual Studio 2019. Я нашел решение, и вы можете попробовать следующие шаги.

Во-первых, нам нужно создать консольное приложение. net core 3.1.

Во-вторых, нам нужно установить свойство UseWPF=true в csproj file.

 <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
         <UseWPF>true</UseWPF>
  </PropertyGroup>

В-третьих, нам нужно установить пакет nuget System.Runtime.WindowsRuntime.

В-четвертых, пересобрать приложение и написать следующий код.

using Windows.Foundation;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Rect myRect1 = new Rect();
            myRect1.X = 10;
            myRect1.Y = 100;
            myRect1.Width = 150;
            myRect1.Height = 100;

        }
    }
}

Кроме того, если вы хотите использовать system.windows in. net core 3.1, я предлагаю вам использовать WPF

. net core 3.1 app.

...