WPF 앱에서 Windows 앱 SDK 사용

您所在的位置:网站首页 windowsSDK WPF 앱에서 Windows 앱 SDK 사용

WPF 앱에서 Windows 앱 SDK 사용

2023-05-31 06:53| 来源: 网络整理| 查看: 265

WPF 앱에서 Windows 앱 SDK 사용 아티클 05/27/2023

Windows 앱 SDK Windows 앱 개발 플랫폼의 다음 발전입니다. 그러나 이 항목에서는 WPF(Windows Presentation Foundation) 앱에서 Windows 앱 SDK API(및 Windows 런타임 API)를 사용하는 방법을 보여 줍니다.

대부분의 경우 WPF 앱을 Windows UI 라이브러리 3(WinUI 3) 앱 형식으로 다시 만들 수 있습니다. WinUI 3으로 이동하는 장점 중 하나는 Fluent Design 시스템 액세스할 수 있다는 것입니다(Windows 앱 디자인 및 코드 참조). 또한 WinUI 3은 Windows 앱 SDK 일부이므로 WinUI 3 앱은 다른 Windows 앱 SDK 기능 및 API도 사용할 수 있습니다. 이 항목에서는 WPF 앱을 WinUI 3으로 마이그레이션하는 프로세스를 다루지 않습니다. 그러나 WinUI 3에서 아직 사용할 수 없는 WPF 기능을 사용하고 있는 경우 WPF 앱에서 Windows 앱 SDK 기능(예: 앱 수명 주기, MRT Core, DWriteCore 등)을 계속 사용할 수 있습니다. 이 항목에서는 다음 방법을 보여 줍니다.

또한 기존 WPF 프로젝트가 없거나 프로세스를 연습하려는 경우 이 항목에는 따라 Windows 앱 SDK API를 호출하도록 구성할 수 있도록 WPF 프로젝트를 만드는 단계가 포함되어 있습니다.

사전 요구 사항 Windows 앱 SDK용 도구 설치. 이 항목에서는 패키지되지 않은 WPF 앱과 패키지된 WPF 앱을 모두 다룹니다. WPF 앱이 패키지되지 않은 경우(기본적으로 WPF 앱은) 패키지되지 않은 앱에 대한 모든 종속성이 설치되어 있는지 확인합니다(외부 위치 또는 패키지되지 않은 상태로 패키지된 프레임워크 종속 앱에 대한 Windows 앱 SDK 배포 가이드 참조). 이렇게 하는 빠른 방법은 Windows 앱 SDK 대한 최신 다운로드를 방문한 다음 안정적인 릴리스 런타임 다운로드 중 하나를 다운로드하여 압축을 풀고 실행하는 것입니다.

중요

설치하는 런타임 버전은 이후 단계에서 설치할 Microsoft.WindowsAppSDK NuGet 패키지 버전과 일치해야 합니다.

패키지되지 않고패키지된 용어에 대한 자세한 내용은 앱 패키징의 장점 및 단점을 참조하세요.

아직 없는 경우 WPF 프로젝트 만들기

WPF 프로젝트가 이미 있는 경우 다음 섹션으로 이동할 수 있습니다.

Visual Studio에서 새 C# WPF 애플리케이션 프로젝트(.NET 프로젝트)를 만듭니다. WPF 앱(.NET Framework)이 아닌 정확한 이름의 WPF 애플리케이션으로 프로젝트 템플릿을 선택해야 합니다. 프로젝트에 이름을 지정하고 모든 기본 옵션을 적용합니다.

이제 패키지되지 않은 WPF 앱을 빌드하는 프로젝트가 있습니다.

Windows 앱 SDK 지원을 위해 WPF 프로젝트 구성

먼저 프로젝트 파일을 편집합니다.

솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택합니다.

이 단계를 통해 WinRT(Windows 런타임) API(Windows 앱 SDK API 포함)를 호출할 수 있습니다. PropertyGroup 요소 내에는 net6.0과 같은 값으로 설정된 TargetFramework 요소가 있습니다. 해당 대상 프레임워크 값에 모니커(특히 대상 프레임워크 모니커)를 추가합니다. 예를 들어 앱이 Windows 10 버전 2004를 대상으로 하는 경우 다음을 사용합니다.

net6.0-windows10.0.19041.0

또한 PropertyGroup 요소 내에 다음과 같이 RuntimeIdentifiers 요소를 추가합니다.

win10-x86;win10-x64;win10-arm64

기본적으로 WPF 앱은 패키지되지 않습니다(즉, MSIX를 사용하여 설치되지 않음). 패키지되지 않은 앱은 Windows 앱 SDK 다른 기능을 사용하기 전에 Windows 앱 SDK 런타임을 초기화해야 합니다. 자동 초기화를 통해 앱이 시작될 때 자동으로 이 작업을 수행할 수 있습니다. 다음과 같이 프로젝트 속성( PropertyGroup 요소 내부)을 WindowsPackageType 적절하게 설정합니다.

None

고급 요구 사항(예: 사용자 지정 오류 처리 또는 특정 버전의 Windows 앱 SDK 로드)이 있는 경우 자동 초기화 대신 부트스트래퍼 API를 명시적으로 호출할 수 있습니다. 자세한 내용은 외부 위치 또는 패키지되지 않은 앱에 Windows 앱 SDK 런타임 사용을 참조하세요.

프로젝트 파일을 저장한 후 닫습니다.

다음으로 프로젝트에 Windows 앱 SDK NuGet 패키지를 설치합니다.

솔루션 탐색기 프로젝트의 종속성 노드를 마우스 오른쪽 단추로 클릭하고 Nuget 패키지 관리를 선택합니다. NuGet 패키지 관리자 창에서 찾아보기 탭을 선택하고 안정적인 최신Microsoft.WindowsAppSDK 패키지를 설치합니다. WPF 앱에서 일부 Windows 앱 SDK 기능 사용

이 섹션에서는 WPF 앱에서 Windows 앱 SDK API를 호출하는 매우 간단한 예제를 제공합니다. MRT Core 기능을 사용합니다( MRT Core를 사용하여 리소스 관리 참조). 이 예제가 WPF 프로젝트에 대해 작동하는 경우(이 연습에 대해 새 프로젝트를 만든 경우) 다음 단계를 수행할 수 있습니다.

다음 태그를 MainWindow.xaml 에 추가합니다(루트 그리드 내에 붙여넣을 수 있음).

Click me! Hello, World!

이제 Windows 앱 SDK ResourceManager 클래스를 사용하여 문자열 리소스를 로드하는 일부 코드를 추가합니다.

프로젝트에 새 리소스 파일(.resw) 항목을 추가합니다( Resources.resw의 기본 이름으로 그대로 둡니다).

편집기에서 리소스 파일을 연 상태에서 다음 속성을 사용하여 새 문자열 리소스를 만듭니다.

이름: 메시지 값: 안녕하세요, 리소스!

리소스 파일을 저장하고 닫습니다.

에서 MainWindow.xaml.cs다음 이벤트 처리기를 추가합니다.

private void Button_Click(object sender, RoutedEventArgs e) { // Construct a resource manager using the resource index generated during build. var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager(); // Look up a string in the resources file using the string's name. myTextBlock.Text = manager.MainResourceMap.GetValue("Resources/Message").ValueAsString; }

프로젝트를 빌드하고 앱을 실행합니다. 단추를 클릭하여 표시되는 문자열 Hello, resources! 을 확인합니다.

런타임에 애플리케이션에 특정 버전의 Windows 앱 런타임이 필요함을 나타내는 메시지 상자가 표시되고 지금 설치할지 묻는 메시지가 표시되면 예를 클릭합니다. 그러면 Windows 앱 SDK 대한 최신 다운로드로 연결됩니다. 자세한 내용은 위의 필수 구성 요소 섹션을 참조하세요.

또한 앱이 Windows 앱 SDK 사용할 때 사용하는 프레임워크 패키지 종속성과 패키지되지 않은 앱에서 작동하는 데 필요한 추가 구성 요소에 대한 자세한 내용은 런타임 아키텍처를 참조하세요.

MSIX를 사용하여 WPF 앱 패키지 및 배포

일부 Windows 기능 및 API(Windows 앱 SDK 알림 API 포함)는 앱에 런타임 시 패키지 ID가 있어야 합니다(즉, 앱을 패키지해야 합니다). 자세한 내용은 패키지 ID가 필요한 기능을 참조하세요.

Visual Studio의 솔루션 탐색기 솔루션을 마우스 오른쪽 단추로 클릭하고 새 프로젝트 추가>...를 선택합니다. 새 프로젝트 추가 대화 상자에서 패키징을 검색하고 C# Windows 애플리케이션 패키징 프로젝트 프로젝트 템플릿을 선택하고 다음을 클릭합니다. 프로젝트 이름을 지정하고 만들기를 클릭합니다. 패키지에 포함할 솔루션의 애플리케이션을 지정하려고 합니다. 따라서 패키징 프로젝트(WPF 프로젝트가 아님 )에서 종속성 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 참조 추가...를 선택합니다. 솔루션의 프로젝트 목록에서 WPF 프로젝트를 선택하고 확인을 클릭합니다. 패키징 프로젝트의 종속성>애플리케이션 노드를 확장하고 WPF 프로젝트가 참조되고 굵게 강조 표시되어 있는지 확인합니다. 이는 프로젝트가 패키지의 시작점으로 사용된다는 의미입니다. 패키징 프로젝트를 마우스 오른쪽 단추 로 클릭하고 시작 프로젝트로 설정을 선택합니다. WPF 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택합니다. 삭제 None, 저장 및 닫습니다. 솔루션 플랫폼 드롭다운에서 모든 Cpu 대신 x64를 선택합니다. 빌드하고 실행할 수 있는지 확인합니다.

이제 WPF 앱을 패키지했으므로 패키지 ID가 필요한 API를 호출할 수 있습니다. 따라서 에서 MainWindow.xaml.cs다음과 같이 보이도록 이벤트 처리기를 편집합니다.

private void Button_Click(object sender, RoutedEventArgs e) { var notification = new AppNotificationBuilder() .AddArgument("action", "viewConversation") .AddArgument("conversationId", "9813") .AddText("Andrew sent you a picture") .AddText("Check this out, The Enchantments in Washington!") .BuildNotification(); AppNotificationManager.Default.Show(notification); }

빌드하고 다시 실행합니다. 단추를 클릭하고 알림 메시지가 표시되는지 확인합니다. 런타임에 패키지 ID가 없는 프로세스에서 호출되면 알림 API는 예외를 throw합니다.

참고

이 섹션의 단계에서는 패키지된 앱을 만드는 방법을 보여 줬습니다. 다른 방법은 외부 위치를 사용하여 패키지된 앱을 만드는 것입니다. 이러한 모든 용어에 대한 미리 알림은 앱 패키징의 장점 및 단점을 참조하세요.

관련 항목 WPF(Windows Presentation Foundation) Windows 앱 SDK용 도구 설치 외부 위치로 패키지되거나 패키지되지 않은 프레임워크 종속 앱을 위한 Windows 앱 SDK 배포 가이드 Windows 앱 SDK 대한 최신 다운로드 앱 패키지의 장단점 외부 위치로 패키지되거나 패키지되지 않은 앱에 Windows 앱 SDK 런타임 사용 런타임 아키텍처 패키지 ID가 필요한 기능


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3