WPF 플랫폼 설치WPF Platform Setup

미리 보기

Xamarin.Forms는 Windows Presentation Foundation (WPF)에 대 한 미리 보기 지원이 되었습니다.Xamarin.Forms now has preview support for the Windows Presentation Foundation (WPF). 이 문서에서는 Xamarin.Forms 솔루션에 WPF 프로젝트를 추가 하는 방법에 설명 합니다.This article demonstrates how to add a WPF project to a Xamarin.Forms solution.

시작 하기 전이나, Visual Studio 2017에서 새 Xamarin.Forms 솔루션을 만드는 예를 들어 기존 Xamarin.Forms 솔루션을 사용 하 여 BoxViewClock합니다.Before you start, create a new Xamarin.Forms solution in Visual Studio 2017, or use an existing Xamarin.Forms solution, for example, BoxViewClock. Windows에서 Xamarin.Forms 솔루션에 WPF 앱만 추가할 수 있습니다.You can only add WPF apps to a Xamarin.Forms solution in Windows.

WPF 프로젝트 Xamarin.University 사용 하 여 Xamarin.Forms 앱에 추가Add a WPF project to a Xamarin.Forms app with Xamarin.University

Xamarin.Forms 3.0 WPF 지원이, Xamarin UniversityXamarin.Forms 3.0 WPF Support, by Xamarin University

WPF 앱 추가Adding a WPF App

Windows 7, 8 및 10 데스크톱에서 실행 되는 WPF 앱을 추가 하려면 이러한 지침을 따릅니다.Follow these instructions to add a WPF app that will run on the Windows 7, 8, and 10 desktops:

  1. 솔루션 이름을 마우스 오른쪽 단추로 Visual Studio 2017에는 솔루션 탐색기 선택한 추가 > 새 프로젝트... .In Visual Studio 2017, right-click on the solution name in the Solution Explorer and choose Add > New Project....

  2. 새 프로젝트 창에서 왼쪽된 선택 Visual C#Windows 클래식 바탕 화면.In the New Project window, at the left select Visual C# and Windows Classic Desktop. 프로젝트 형식 목록에서 선택 WPF 앱 (.NET Framework) 합니다.In the list of project types, choose WPF App (.NET Framework).

  3. 사용 하 여 프로젝트의 이름을 입력 한 WPF 확장명을 예를 들어 BoxViewClock.WPF합니다.Type a name for the project with a WPF extension, for example, BoxViewClock.WPF. 클릭 합니다 찾아보기 단추를 선택 합니다 BoxViewClock 폴더를 누릅니다 폴더 선택합니다.Click the Browse button, select the BoxViewClock folder, and press Select Folder. WPF 프로젝트를 솔루션의 다른 프로젝트와 동일한 디렉터리에 배치 됩니다이 합니다.This will put the WPF project in the same directory as the other projects in the solution.

    새 WPF 프로젝트에 추가Add a new WPF project

    프로젝트를 만들려면 확인 키를 누릅니다.Press OK to create the project.

  4. 솔루션 탐색기를 마우스 오른쪽 단추로 새를 클릭 BoxViewClock.WPF 프로젝트를 마우스 NuGet 패키지 관리합니다.In the Solution Explorer, right click the new BoxViewClock.WPF project and select Manage NuGet Packages. 선택 합니다 찾아보기 탭을 클릭 합니다 시험판 포함 확인란을 검색 Xamarin.Forms합니다.Select the Browse tab, click the Include prerelease checkbox, and search for Xamarin.Forms.

    NuGet 패키지를 선택Select the NuGet package

    패키지 클릭을 선택 합니다 설치 단추입니다.Select that package and click the Install button.

  5. 이제 검색할 Xamarin.Forms.Platform.WPF 패키징하고 하나를 설치 합니다.Now search for Xamarin.Forms.Platform.WPF package and install that one as well. Microsoft에서 패키지를 해야 합니다.Make sure the package is from Microsoft!

  6. 솔루션 이름을 마우스 오른쪽 단추로 클릭 합니다 솔루션 탐색기 선택한 솔루션용 NuGet 패키지 관리합니다.Right click the solution name in the Solution Explorer and select Manage NuGet Packages for Solution. 선택 된 업데이트 탭 및 Xamarin.Forms 패키지 있습니다.Select the Update tab and the Xamarin.Forms package. 모든 프로젝트를 선택 하 고 동일한 Xamarin.Forms 버전으로 업데이트 합니다.Select all the projects and update them to the same Xamarin.Forms version:

    NuGet 패키지를 업데이트할Update the NuGet package

  7. WPF 프로젝트에서 마우스 오른쪽 단추로 클릭 참조가합니다.In the WPF project, right-click on References. 참조 관리자 대화 상자에서 프로젝트 왼쪽 및 확인 하려면 옆의 확인란을 BoxViewClock 프로젝트:In the Reference Manager dialog, select Projects at the left, and check the checkbox adjacent to the BoxViewClock project:

    공유 프로젝트 참조Reference the shared project

  8. 편집 된 MainWindow.xaml WPF 프로젝트의 파일입니다.Edit the MainWindow.xaml file of the WPF project. Window 태그에 대 한 XML 네임 스페이스 선언을 추가 합니다 Xamarin.Forms.Platform.WPF 어셈블리 및 네임 스페이스:In the Window tag, add an XML namespace declaration for the Xamarin.Forms.Platform.WPF assembly and namespace:

    xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"
    

    이제 변경 합니다 Window 태그를 wpf:FormsApplicationPage입니다.Now change the Window tag to wpf:FormsApplicationPage. 변경 된 Title 응용 프로그램의 예를 들어 이름으로 설정 BoxViewClock합니다.Change the Title setting to the name of your application, for example, BoxViewClock. 완료 된 XAML 파일은 다음과 같이 표시 됩니다.The completed XAML file should look like this:

    <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:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"
            xmlns:local="clr-namespace:BoxViewClock.WPF"
            mc:Ignorable="d"
            Title="BoxViewClock" Height="450" Width="800">
        <Grid>
    
        </Grid>
    </wpf:FormsApplicationPage>
    
  9. 편집 된 MainWindow.xaml.cs WPF 프로젝트의 파일입니다.Edit the MainWindow.xaml.cs file of the WPF project. 새로 추가 하는 두 개의 using 지시문:Add two new using directives:

    using Xamarin.Forms;
    using Xamarin.Forms.Platform.WPF;
    

    기본 클래스를 변경 MainWindow 에서 WindowFormsApplicationPage입니다.Change the base class of MainWindow from Window to FormsApplicationPage. 다음의 InitializeComponent 호출, 다음 두 명령문을 추가 합니다.Following the InitializeComponent call, add the following two statements:

    Forms.Init();
    LoadApplication(new BoxViewClock.App());
    

    주석을 제외 하 고 사용 하지 않는 using 지시문, 전체 MainWindows.xaml.cs 파일 같이 표시 됩니다.Except for comments and unused using directives, the complete MainWindows.xaml.cs file should look like this:

    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());
            }
        }
    }
    
  10. WPF 프로젝트를 마우스 오른쪽 단추로 클릭 합니다 솔루션 탐색기 선택한 시작 프로젝트로 설정합니다.Right-click the WPF project in the Solution Explorer and select Set as Startup Project. F5 키를 눌러 Visual Studio 디버거를 사용 하 여 Windows 바탕 화면에서 프로그램을 실행 하려면:Press F5 to run the program with the Visual Studio debugger on the Windows desktop:

    WPF BoxView 시계WPF BoxView Clock

다음 단계Next Steps

플랫폼별Platform Specifics

Xamarin.Forms 응용 프로그램 코드 또는 XAML에서에서 실행 중인 플랫폼을 확인할 수 있습니다.You can determine what platform your Xamarin.Forms application is running on from either code or XAML. 이 옵션을 사용 하면 WPF에서 실행 되는 경우 프로그램 특성을 변경할 수 있습니다.This allows you to change program characteristics when it's running on WPF. 코드에서의 값을 비교 Device.RuntimePlatform 사용 하 여를 Device.WPF 상수 ("WPF" 문자열 같음).In code, compare the value of Device.RuntimePlatform with the Device.WPF constant (which equals the string "WPF"). 일치 하는 경우 응용 프로그램은 WPF에서 실행 됩니다.If there's a match, the application is running on WPF.

XAML을 사용할 수 있습니다는 OnPlatform 플랫폼 특정 속성 값을 선택 하는 태그:In XAML, you can use the OnPlatform tag to select a property value specific to the platform:

<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>

창 크기Window Size

WPF 창의 초기 크기를 조정할 수 있습니다 MainWindow.xaml 파일:You can adjust the initial size of the window in the WPF MainWindow.xaml file:

Title="BoxViewClock" Height="450" Width="800"

문제Issues

이것이 미리 하므로 해야 프로덕션을 준비 하는 것은 아닙니다.This is a Preview, so you should expect that not everything is production ready. Xamarin.Forms에 대 한 일부 NuGet 패키지는 WPF에 대 한 준비 하 고 일부 기능이 완벽 하 게 작동 하지 않을 수 있습니다.Not all NuGet packages for Xamarin.Forms are ready for WPF, and some features might not be fully working.