빠른 시작: 포인터 장치 식별
언어: HTML | XAML

빠른 시작: 포인터 장치 식별(XAML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이 빠른 시작에서는 사용자의 시스템에 연결되어 있는 입력 장치를 식별하는 과정을 안내합니다. 뿐만 아니라 응용 프로그램과의 상호 작용 방식에 영향을 미치는 각 장치의 접근 권한 값과 특성을 검색하는 방법도 소개합니다.

로드맵: 이 항목은 다음 항목과 연관되어 있습니다. 참고 항목:

목표: 연결된 입력 장치 및 해당 접근 권한 값을 식별하려면

사전 요구 사항

사용자가 C++, C# 또는 Visual Basic를 사용하여 기본 Windows 런타임 앱을 만들 수 있다고 가정합니다.

이 자습서를 완료하려면 다음을 수행해야 합니다.

지침

1. 마우스 속성 검색

Windows.Devices.Input 네임스페이스에는 하나 이상의 연결된 마우스가 제공하는 속성을 검색하는 데 사용되는 MouseCapabilities 클래스가 포함되어 있습니다. 새 MouseCapabilities 개체를 만들고 관심 있는 속성을 가져옵니다.

참고  여기에 설명된 속성에 의해 반환되는 값은 연결된 모든 마우스를 기반으로 합니다. 하나 이상의 마우스가 특정 접근 권한 값을 지원하는 경우에는 부울 속성이 0이 아닌 값을 반환하고 숫자 속성이 마우스 하나가 제공하는 최대값을 반환합니다.
 

다음 코드에서는 TextBlock 요소를 여러 개 사용하여 개별 마우스 속성과 값을 표시합니다.


private void GetMouseProperties()
{
    MouseCapabilities mouseCapabilities = new Windows.Devices.Input.MouseCapabilities();
    MousePresent.Text = mouseCapabilities.MousePresent != 0 ? "Yes" : "No";
    VertWheel.Text = mouseCapabilities.VerticalWheelPresent != 0 ? "Yes" : "No";
    HorzWheel.Text = mouseCapabilities.HorizontalWheelPresent != 0 ? "Yes" : "No";
    SwappedButtons.Text = mouseCapabilities.SwapButtons != 0 ? "Yes" : "No";
    NumButtons.Text = mouseCapabilities.NumberOfButtons.ToString();
}


2. 키보드 속성 검색

Windows.Devices.Input 네임스페이스에는 키보드가 연결되었는지 여부를 검색하는 데 사용되는 KeyboardCapabilities 클래스가 포함되어 있습니다. 새 KeyboardCapabilities 개체를 만들고 KeyboardPresent 속성을 가져옵니다.

다음 코드에서는 TextBlock 요소를 한 개 사용하여 키보드 속성과 값을 표시합니다.


private void GetKeyboardProperties()
{
    KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
    KeyboardPresent.Text = keyboardCapabilities.KeyboardPresent != 0 ? "Yes" : "No";
}


3. 터치 속성 검색

Windows.Devices.Input 네임스페이스에는 터치 디지타이저가 연결되었는지 여부를 검색하는 데 사용되는 TouchCapabilities 클래스가 포함되어 있습니다. 새 TouchCapabilities 개체를 만들고 관심 있는 속성을 가져옵니다.

참고  여기에 설명된 속성에 의해 반환되는 값은 연결된 모든 터치 디지타이저를 기반으로 합니다. 하나 이상의 디지타이저가 특정 접근 권한 값을 지원하는 경우에는 부울 속성이 0이 아닌 값을 반환하고 숫자 속성이 디지타이저 하나가 제공하는 최대값을 반환합니다.
 

다음 코드에서는 TextBlock 요소를 여러 개 사용하여 터치 속성과 값을 표시합니다.


private void GetTouchProperties()
{
    TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
    TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
    Contacts.Text = touchCapabilities.Contacts.ToString();
}


4. 포인터 속성 검색

Windows.Devices.Input 네임스페이스에는 포인터 입력(터치, 펜 또는 마우스)을 지원하는 장치가 연결되어 있는지 여부를 검색하는 데 사용되는 PointerDevice 클래스가 포함되어 있습니다. 새 PointerDevice 개체를 만들고 관심 있는 속성을 가져옵니다.

참고  여기에 설명된 속성에 의해 반환되는 값은 연결된 모든 포인터 장치를 기반으로 합니다. 하나 이상의 장치가 특정 접근 권한 값을 지원하는 경우에는 부울 속성이 0이 아닌 값을 반환하고 숫자 속성이 포인터 장치 하나가 제공하는 최대값을 반환합니다.
 

다음 코드에서는 표를 사용하여 각 포인터 장치의 속성과 값을 표시합니다.


private void GetPointerDevices()
{
    IReadOnlyList<PointerDevice> pointerDevices = Windows.Devices.Input.PointerDevice.GetPointerDevices();
    int gridRow = 0;
    int gridColumn = 0;

    for (int i = 0; i < pointerDevices.Count; i++)
    {
        // Pointer device type.
        TextBlock textBlock1 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock1);
        textBlock1.Text = (i + 1).ToString() + " Pointer Device Type:";
        Grid.SetRow(textBlock1, gridRow);
        Grid.SetColumn(textBlock1, gridColumn);

        TextBlock textBlock2 = new TextBlock();
        textBlock2.Text = pointerDevices[i].PointerDeviceType.ToString();
        Grid_PointerProps.Children.Add(textBlock2);
        Grid.SetRow(textBlock2, gridRow++);
        Grid.SetColumn(textBlock2, gridColumn + 1);

        // Is external?
        TextBlock textBlock3 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock3);
        textBlock3.Text = (i + 1).ToString() + " Is External?";
        Grid.SetRow(textBlock3, gridRow);
        Grid.SetColumn(textBlock3, gridColumn);

        TextBlock textBlock4 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock4);
        textBlock4.Text = pointerDevices[i].IsIntegrated.ToString();
        Grid.SetRow(textBlock4, gridRow++);
        Grid.SetColumn(textBlock4, gridColumn + 1);

        // Maximum contacts.
        TextBlock textBlock5 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock5);
        textBlock5.Text = (i + 1).ToString() + " Max Contacts:";
        Grid.SetRow(textBlock5, gridRow);
        Grid.SetColumn(textBlock5, gridColumn);

        TextBlock textBlock6 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock6);
        textBlock6.Text = pointerDevices[i].MaxContacts.ToString();
        Grid.SetRow(textBlock6, gridRow++);
        Grid.SetColumn(textBlock6, gridColumn + 1);

        // Physical device rectangle.
        TextBlock textBlock7 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock7);
        textBlock7.Text = (i + 1).ToString() + " Physical Device Rect:";
        Grid.SetRow(textBlock7, gridRow);
        Grid.SetColumn(textBlock7, gridColumn);

        TextBlock textBlock8 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock8);
        textBlock8.Text = pointerDevices[i].PhysicalDeviceRect.X.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Y.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Width.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Height.ToString();
        Grid.SetRow(textBlock8, gridRow++);
        Grid.SetColumn(textBlock8, gridColumn + 1);

        // Screen rectangle.
        TextBlock textBlock9 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock9);
        textBlock9.Text = (i + 1).ToString() + " Screen Rect:";
        Grid.SetRow(textBlock9, gridRow);
        Grid.SetColumn(textBlock9, gridColumn);

        TextBlock textBlock10 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock10);
        textBlock10.Text = pointerDevices[i].ScreenRect.X.ToString() + "," +
            pointerDevices[i].ScreenRect.Y.ToString() + "," +
            pointerDevices[i].ScreenRect.Width.ToString() + "," +
            pointerDevices[i].ScreenRect.Height.ToString();
        Grid.SetRow(textBlock10, gridRow++);
        Grid.SetColumn(textBlock10, gridColumn + 1);

        gridColumn += 2;
        gridRow = 0;
    }


전체 예제를 보려면 입력: 장치 접근 권한 값 샘플을 참조하세요.

요약

이 빠른 시작에서는 앱에서 사용할 수 있는 입력 장치와 해당 속성을 식별하는 기본적인 함수들을 만들었습니다.

관련 항목

C# 또는 Visual Basic으로 작성한 Windows 런타임 앱용 로드맵
마우스 입력에 응답
키보드 입력에 응답
참조
Windows.Devices.Input
샘플
입력: 장치 접근 권한 값 샘플

 

 

표시:
© 2017 Microsoft