다음을 통해 공유


UIElement.KeyboardAccelerators 속성

정의

키보드를 사용하여 작업을 호출하는 키 조합의 컬렉션을 가져옵니다.

가속기는 일반적으로 단추 또는 메뉴 항목에 할당됩니다.

다양한 메뉴 항목에 대한 키보드 가속기를 보여 주는 메뉴의 예
다양한 메뉴 항목에 대한 키보드 가속기를 보여 주는 메뉴의 예

public:
 property IVector<KeyboardAccelerator ^> ^ KeyboardAccelerators { IVector<KeyboardAccelerator ^> ^ get(); };
IVector<KeyboardAccelerator> KeyboardAccelerators();
public IList<KeyboardAccelerator> KeyboardAccelerators { get; }
var iVector = uIElement.keyboardAccelerators;
Public ReadOnly Property KeyboardAccelerators As IList(Of KeyboardAccelerator)

속성 값

KeyboardAccelerator 개체의 컬렉션입니다.

Windows 요구 사항

디바이스 패밀리
Windows 10 Fall Creators Update (10.0.16299.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v5.0에서 도입되었습니다.)

예제

여기서는 단추 집합에 키보드 가속기를 지정합니다(기본 키보드 가속기 표시 동작을 재정의하는 Button1에 대한 도구 설명을 지정합니다).

<StackPanel x:Name="Container" Grid.Row="0" Background="AliceBlue">
    <Button Content="Button1" Margin="20"
            KeyboardAcceleratorPlacementMode="Auto"
            ToolTipService.ToolTip="Tooltip">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="A" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
    <Button Content="Button2"  Margin="20"
            KeyboardAcceleratorPlacementMode="Auto">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="B" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
    <Button Content="Button3"  Margin="20"
            KeyboardAcceleratorPlacementMode="Auto">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="C" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
</StackPanel>

이 예제에서는 MenuFlyoutItem 및 ToggleMenuFlyoutItem 개체 집합에 대해 키보드 가속기를 지정합니다. 키보드 가속기가 컨트롤의 플라이아웃에 표시됩니다.

<AppBarButton AccessKey="R" Icon="Refresh" Label="Refresh" IsAccessKeyScope="True">
    <AppBarButton.Flyout>
        <MenuFlyout>
            <MenuFlyoutItem AccessKey="A" Icon="Refresh" Text="Refresh A">
                <MenuFlyoutItem.KeyboardAccelerators>
                    <KeyboardAccelerator Key="R" Modifiers="Control"/>
                </MenuFlyoutItem.KeyboardAccelerators>
            </MenuFlyoutItem>
            <MenuFlyoutItem AccessKey="B" Icon="Globe" Text="Refresh B" />
            <MenuFlyoutItem AccessKey="C" Icon="Globe" Text="Refresh C" />
            <MenuFlyoutItem AccessKey="D" Icon="Globe" Text="Refresh D" />
            <ToggleMenuFlyoutItem AccessKey="E" Icon="Globe" Text="ToggleMe">
                <MenuFlyoutItem.KeyboardAccelerators>
                    <KeyboardAccelerator Key="Q" Modifiers="Control"/>
                </MenuFlyoutItem.KeyboardAccelerators>
            </ToggleMenuFlyoutItem>
        </MenuFlyout>
    </AppBarButton.Flyout>
</AppBarButton>

KeyboardAcceleratorPlacementMode 속성(자동 또는 숨김의 두 값 허용)을 사용하면 표시 동작을 제어할 수 있습니다.

<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
    <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="S" Modifiers="Control" />
    </Button.KeyboardAccelerators>
</Button>

경우에 따라 다른 요소(일반적으로 컨테이너 개체)를 기준으로 도구 설명을 표시해야 할 수 있습니다. 예를 들어 피벗 헤더가 있는 PivotItem의 도구 설명을 표시하는 피벗 컨트롤입니다.

다음은 KeyboardAcceleratorPlacementTarget 속성을 사용하여 단추 대신 그리드 컨테이너를 사용하여 저장 단추에 대한 바로 가기 키 조합을 표시하는 방법입니다.

<Grid x:Name="Container" Padding="30">
  <Button Content="Save"
    Click="OnSave"
    KeyboardAcceleratorPlacementMode="Auto"
    KeyboardAcceleratorPlacementTarget="{x:Bind Container}">
    <Button.KeyboardAccelerators>
      <KeyboardAccelerator  Key="S" Modifiers="Control" />
    </Button.KeyboardAccelerators>
  </Button>
</Grid>

설명

키보드 가속기는 일반적으로 UWP 애플리케이션의 UI에서 직접 설명되지 않으므로 도구 설명을 통해 검색 가능성을 향상시킬 수 있습니다. 이 도구 설명은 사용자가 포커스를 이동하거나 누르거나 누르거나 마우스 포인터를 컨트롤 위로 가리키면 자동으로 표시됩니다. 도구 설명을 통해 컨트롤에 연결된 키보드 가속기가 있는지 확인할 수 있으며, 있는 경우 가속기 키 조합이 표시됩니다.

Windows 10 버전 1703에는 바로 가기 키가 도입되었습니다. 그러나 이러한 바로 가기는 해당 컨트롤의 UI와 함께 표시되지 않았습니다.

Windows 10 버전 1803부터 KeyboardAccelerators가 선언되면 컨트롤은 MenuFlyoutItemToggleMenuFlyoutItem 개체와 연결되지 않는 한 기본적으로 도구 설명에 해당 키 조합을 표시합니다.

참고

도구 설명을 지정하면 이 동작이 재정의됩니다.

MenuFlyoutItemToggleMenuFlyoutItem) 개체의 경우 키보드 가속기가 플라이아웃 텍스트와 함께 표시됩니다.

컨트롤에 둘 이상의 가속기가 정의된 경우 등록된 첫 번째 가속기가 표시됩니다.

컨트롤에 따라 텍스트 재정의 속성을 사용하여 키보드 가속기와 연결된 기본 키 조합 문자열을 재정의할 수 있습니다. MenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverrideAppBarToggleButton.KeyboardAcceleratorTextOverride를 참조하세요.

가속기 키는 F1 - F12 및 Esc와 같은 단일 키 또는 명령을 호출하는 키 조합(Ctrl + Shift + B 또는 Ctrl C)일 수 있습니다. 일반적으로 Alt 키로 수정되고 명령 또는 컨트롤을 활성화하는 액세스 키(니모닉)와 다릅니다.

액셀러레이터와 연결된 요소가 표시되지 않더라도 액셀러레이터를 실행할 수 있습니다. 예를 들어 CommandBar의 CommandBar.SecondaryCommands 컬렉션에 있는 항목은 오버플로 메뉴를 확장하고 요소를 표시하지 않고 가속기를 사용하여 호출 할 수 있습니다 .

기본적으로 액셀러레이터에는 전역 scope 있습니다. 그러나 KeyboardAccelerator.ScopeOwner를 사용하여 scope 제한하거나 KeyboardAccelerator.IsEnabled를 사용하여 가속기를 완전히 사용하지 않도록 설정할 수 있습니다.

적용 대상

추가 정보