수색…
DeviceFamily 특정 코드
일반적으로 UWP는 여러 다른 장치에서 Windows 10에서 실행되는 단일 응용 프로그램을 만드는 데 사용됩니다. 그러나 특정 장치에 맞게 코드를 만들 수도 있습니다. 여러 가지 방법으로이를 달성 할 수 있습니다.
다른 XAML 레이아웃
특정 "장치 제품군"에 대해 특정 레이아웃을 사용하려면 대상 XAML 파일과 동일한 이름의 새 XAML 페이지 항목을 만들고 대상 장치 패밀리를 나타내는 접미사를 추가하여이 작업을 수행 할 수 있습니다. 그런 다음 모든 장치에 대해 MainPage.xaml 을 갖게되고 특정 패밀리에 대해서만 MainPage.DeviceFamily- [특정 패밀리] .xaml 을 갖게되어 기본 레이아웃을 덮어 씁니다. 아래를 참조하십시오.
많은 파일에서이 작업을 수행하려면 DeviceFamily- [특정 패밀리] 라는 이름의 폴더를 만들고 모든 XAML 페이지를 기본 XAML 파일 (아래 참조)과 동일한 이름으로 정확하게 추가 할 수 있습니다. 두 예제 모두에서 모든 페이지가 동일한 코드 숨김 파일을 공유하므로 기능은 동일하지만 레이아웃은 특정 화면 크기에 맞게 조정됩니다.
특정 가족 용 코드
특정 장치 제품군에서만 코드 숨김 또는 ViewModel의 일부를 실행하려면 AnalyticsVersionInfo
클래스의 DeviceFamily
속성을 사용할 수 있습니다.
AnalyticsVersionInfo avi = AnalyticsInfo.VersionInfo;
var deviceFamily = avi.DeviceFamily;
if(deviceFamily == "Windows.Mobile")
{
Console.WriteLine("You're on mobile device right now.");
}
else if(deviceFamily == "Windows.Desktop")
{
Console.WriteLine("You're on desktop");
}
else if(deviceFamily == "Windows.IoT")
{
Console.WriteLine("You're on IoT");
}
//....
현재 장치 제품군 가져 오기
현재 장치 제품군을 가져 오는 간단한 휴대용 방법 :
/// <summary>
/// All the device families
/// </summary>
public enum DeviceFamily
{
Desktop,
Mobile,
Iot,
Xbox,
}
/// <summary>
/// The helper to get the current device family
/// </summary>
public static class DeviceFamilyHelper
{
/// <summary>
/// Return the family of the current device
/// </summary>
/// <returns>the family of the current device</returns>
public static DeviceFamily GetDeviceFamily()
{
switch(ResourceContext.GetForCurrentView().QualifierValues["DeviceFamily"].ToLowerInvariant())
{
case "mobile": return DeviceFamily.Mobile;
case "xbox": return DeviceFamily.Xbox;
case "iot": return DeviceFamily.Iot;
default: return DeviceFamily.Desktop;
}
}
}
API 계약이 지원되는지 감지합니다.
시스템의 장치 / 릴리스 버전에 따라 일부 API를 사용하지 못할 수도 있습니다. ApiInformation.IsApiContractPresent () 를 사용하여 지원되는 계약을 확인할 수 있습니다.
예를 들어 이것은 전화 장치에서는 true를 반환하고 다른 장치에서는 false를 반환합니다.
ApiInformation.IsApiContractPresent(typeof(CallsPhoneContract).FullName, 1)
API가 속한 계약은 MSDN의 API 페이지 하단에서 사용 가능하거나 전체 목록은 API 계약 페이지 에서 사용할 수 있습니다.