Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.

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