Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.

Xamarin.Formsподдерживает предварительную версию Windows Presentation Foundation (WPF), платформа .NET Framework и .NET Core 3. В этой статье показано, как добавить проект WPF, предназначенный для платформа .NET Framework, в Xamarin.Forms решение.
Внимание
Xamarin.Forms Поддержка WPF предоставляется сообществом. Дополнительные сведения см. в разделе Xamarin.Forms "Поддержка платформы".
Прежде чем начать, создайте новое Xamarin.Forms решение в Visual Studio 2019 или используйте существующее Xamarin.Forms решение.
Добавление приложения WPF
Следуйте приведенным ниже инструкциям, чтобы добавить приложение WPF, которое будет работать на настольных компьютерах Windows 7, 8 и 10:
В Visual Studio 2019 щелкните правой кнопкой мыши имя решения в Обозреватель решений и выберите "Добавить > новый проект...".
В окне "Добавление нового проекта" выберите C# в раскрывающемся списке "Языки", выберите Windows в раскрывающемся списке "Платформы" и выберите "Рабочий стол" в раскрывающемся списке "Тип проекта". В списке типов проектов выберите приложение WPF (платформа .NET Framework):

Нажмите кнопку "Далее ".
Примечание.
Xamarin.Forms 4.7 включает поддержку приложений WPF, работающих в .NET Core 3.
В окне "Настройка нового проекта" введите имя проекта с расширением WPF, например BoxViewClock.WPF. Нажмите кнопку "Обзор", выберите папку BoxViewClock и нажмите клавишу SELECT Folder, чтобы поместить проект WPF в тот же каталог, что и другие проекты в решении:

Нажмите кнопку "Создать", чтобы создать проект.
В Обозреватель решений щелкните правой кнопкой мыши новый проект BoxViewClock.WPF и выберите "Управление пакетами NuGet...". Выберите вкладку "Обзор" и выполните поискXamarin.Forms. Platform.WPF:

Выберите пакет и нажмите кнопку "Установить ".
Щелкните правой кнопкой мыши имя решения в Обозреватель решений и выберите "Управление пакетами NuGet для решения...". Выберите вкладку Обновления и выберите Xamarin.Forms пакет. Выберите все проекты и обновите их до одной Xamarin.Forms версии:

В проекте WPF щелкните правой кнопкой мыши ссылки и выберите "Добавить ссылку...". В диалоговом окне "Диспетчер ссылок" выберите "Проекты" слева и проверка поле проверка box рядом с проектом BoxViewClock:

Нажмите кнопку "ОК ".
Измените файл MainWindow.xaml проекта WPF. В теге
Windowдобавьте объявление пространства имен XML для Xamarin.Formsобъекта . Сборка и пространство имен Platform.WPF :xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"Теперь измените
Windowтегwpf:FormsApplicationPageна . ИзменитеTitleпараметр на имя приложения, например BoxViewClock. Готовый XAML-файл должен выглядеть следующим образом:<wpf:FormsApplicationPage x:Class="BoxViewClock.WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BoxViewClock.WPF" xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF" mc:Ignorable="d" Title="BoxViewClock" Height="450" Width="800"> <Grid> </Grid> </wpf:FormsApplicationPage>Измените файл MainWindow.xaml.cs проекта WPF. Добавьте две новые
usingдирективы:using Xamarin.Forms; using Xamarin.Forms.Platform.WPF;Измените базовый класс
MainWindowнаWindowFormsApplicationPage.InitializeComponentПосле вызова добавьте следующие две инструкции:Forms.Init(); LoadApplication(new BoxViewClock.App());За исключением комментариев и неиспользуемых
usingдиректив, полный MainWindows.xaml.cs файл должен выглядеть следующим образом:using Xamarin.Forms; using Xamarin.Forms.Platform.WPF; namespace BoxViewClock.WPF { public partial class MainWindow : FormsApplicationPage { public MainWindow() { InitializeComponent(); Forms.Init(); LoadApplication(new BoxViewClock.App()); } } }Щелкните правой кнопкой мыши проект WPF в Обозреватель решений и выберите "Задать в качестве запускаемого проекта". Нажмите клавишу F5, чтобы запустить программу с отладчиком Visual Studio на рабочем столе Windows:

Особенности платформы
Вы можете определить, на какой платформе Xamarin.Forms работает приложение из кода или XAML. Это позволяет изменять характеристики программы при работе в WPF. В коде сравнивайте значение Device.RuntimePlatform с Device.WPF константой (которая равна строке WPF). Если есть совпадение, приложение работает в WPF.
В XAML можно использовать OnPlatform тег для выбора значения свойства, относящееся к платформе:
<Button.TextColor>
<OnPlatform x:TypeArguments="Color">
<On Platform="iOS" Value="White" />
<On Platform="macOS" Value="White" />
<On Platform="Android" Value="Black" />
<On Platform="WPF" Value="Blue" />
</OnPlatform>
</Button.TextColor>
Размер окна
Вы можете настроить начальный размер окна в файле WPF MainWindow.xaml :
Title="BoxViewClock" Height="450" Width="800"
Проблемы
Это предварительная версия, поэтому следует ожидать, что не все готово к работе. Не все пакеты NuGet готовы Xamarin.Forms для WPF, и некоторые функции могут не полностью работать.
Связанное видео
Xamarin.Forms Видео поддержки WPF 3.0