WPF 플랫폼 설정

Preview label

Xamarin.Forms 에는 WPF(Windows Presentation Foundation), .NET Framework 및 .NET Core 3에 대한 미리 보기 지원이 있습니다. 이 문서에서는 .NET Framework를 대상으로 하는 WPF 프로젝트를 솔루션에 Xamarin.Forms 추가하는 방법을 보여 줍니다.

Important

Xamarin.Forms WPF에 대한 지원은 커뮤니티에서 제공합니다. 자세한 내용은 플랫폼 지원을 참조 Xamarin.Forms 하세요.

시작하기 전에 Visual Studio 2019에서 새 Xamarin.Forms 솔루션을 만들거나 기존 솔루션(예: BoxViewClock)을 Xamarin.Forms 사용합니다. Windows의 솔루션에 Xamarin.Forms WPF 앱만 추가할 수 있습니다.

WPF 애플리케이션 추가

다음 지침에 따라 Windows 7, 8 및 10 데스크톱에서 실행되는 WPF 애플리케이션을 추가합니다.

  1. Visual Studio 2019에서 솔루션 탐색기 솔루션 이름을 마우스 오른쪽 단추로 클릭하고 새 프로젝트 추가>...를 선택합니다.

  2. 새 프로젝트 추가 창에서 언어 드롭다운에서 C# 선택하고, 플랫폼 드롭다운에서 Windows 선택하고, 프로젝트 유형 드롭다운에서 데스크톱선택합니다. 프로젝트 형식 목록에서 WPF 앱(.NET Framework)을 선택합니다.

    Screenshot shows the Add a new project dialog box with W P F App selected.

    다음 단추를 누릅니다.

    참고 항목

    Xamarin.Forms 4.7에는 .NET Core 3에서 실행되는 WPF 앱에 대한 지원이 포함됩니다.

  3. 새 프로젝트 구성 창에서 WPF 확장이 있는 프로젝트의 이름(예: BoxViewClock.WPF)을 입력합니다. 찾아보기 단추를 클릭하고 BoxViewClock 폴더를 선택한 다음 폴더 선택을 눌러 솔루션의 다른 프로젝트와 동일한 디렉터리에 WPF 프로젝트를 배치합니다.

    Screenshot shows the Configure you new project dialog box with values for Project name, Location, and Framework.

    만들기 단추를 눌러 프로젝트를 만듭니다.

  4. 솔루션 탐색기 새 BoxViewClock.WPF 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다. 찾아보기 탭을 선택하고 검색합니다Xamarin.Forms. Platform.WPF:

    Select the NuGet package

    패키지를 선택하고 설치 단추를 클릭합니다.

  5. 솔루션 탐색기 솔루션 이름을 마우스 오른쪽 단추로 클릭하고 솔루션용 NuGet 패키지 관리를 선택합니다. 업데이트 탭을 선택한 다음 패키지를 선택합니다Xamarin.Forms. 모든 프로젝트를 선택하고 동일한 Xamarin.Forms 버전으로 업데이트합니다.

    Update the NuGet package

  6. WPF 프로젝트에서 참조를 마우스 오른쪽 단추로 클릭하고 참조 추가...를 선택합니다. 참조 관리자 대화 상자에서 왼쪽에서 프로젝트를 선택하고 BoxViewClock 프로젝트에 인접한 검사box를 검사.

    Reference the shared project

    확인 단추를 누릅니다.

  7. WPF 프로젝트의 MainWindow.xaml 파일을 편집합니다. 태그에서 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>
    
  8. WPF 프로젝트의 MainWindow.xaml.cs 파일을 편집합니다. 두 개의 새 using 지시문을 추가합니다.

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

    기본 클래스를 MainWindow 다음으로 Window 변경합니다 FormsApplicationPage. 호출 후 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());
            }
        }
    }
    
  9. 솔루션 탐색기 WPF 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다. F5 키를 눌러 Windows 데스크톱에서 Visual Studio 디버거를 사용하여 프로그램을 실행합니다.

    WPF BoxView Clock

플랫폼 세부 정보

애플리케이션이 코드 또는 XAML에서 실행되는 플랫폼을 Xamarin.Forms 확인할 수 있습니다. 이렇게 하면 WPF에서 실행 중일 때 프로그램 특성을 변경할 수 있습니다. 코드에서 값 Device.RuntimePlatformDevice.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 패키지는 WPF에 Xamarin.Forms 대해 준비되지 않았으며 일부 기능이 완전히 작동하지 않을 수 있습니다.

Xamarin.Forms 3.0 WPF 지원 비디오