UIElement.KeyboardAccelerators 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
키보드를 사용하여 작업을 호출하는 키 조합의 컬렉션을 가져옵니다.
가속기는 일반적으로 단추 또는 메뉴 항목에 할당됩니다.
다양한 메뉴 항목에 대한 키보드 가속기를 보여 주는 메뉴의 예
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 개체의 컬렉션입니다.
예제
여기서는 단추 집합에 대해 키보드 가속기를 지정합니다(기본 키보드 가속기 표시 동작을 재정의하는 에 대한 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>
이 예제에서는 및 ToggleMenuFlyoutItem
개체 집합 MenuFlyoutItem
에 대해 키보드 가속기를 지정합니다. 키보드 가속기가 컨트롤의 플라이아웃에 표시됩니다.
<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>
경우에 따라 다른 요소(일반적으로 컨테이너 개체)를 기준으로 도구 설명을 표시해야 할 수 있습니다.
여기서는 속성을 사용하여 KeyboardAcceleratorPlacementTarget
저장 단추에 대한 키보드 가속기 키 조합을 단추 대신 컨테이너와 함께 Grid
표시하는 방법을 보여 드립니다.
<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>
설명
키보드 가속기는 일반적으로 애플리케이션의 UI에서 직접 설명되지 않으므로 사용자가 포커스를 이동하거나 누르거나 마우스 포인터를 컨트롤 위에 놓을 때 자동으로 표시되는 도구 설명을 통해 검색 가능성을 향상시킬 수 있습니다. 도구 설명을 통해 컨트롤에 연결된 키보드 가속기가 있는지 확인할 수 있으며, 있는 경우 가속기 키 조합이 표시됩니다.
Windows 10 빌드 1703 이상에서는 바로 가기 키를 도입했습니다. 그러나 이러한 바로 가기는 해당 컨트롤의 UI와 함께 표시되지 않았습니다.
Windows 10 빌드 1803 이상에서 KeyboardAccelerators가 선언되면 컨트롤은 MenuFlyoutItem 및 ToggleMenuFlyoutItem 개체와 연결되지 않는 한 기본적으로 도구 설명에 해당 키 조합을 표시합니다.
참고
도구 설명을 지정하면 이 동작이 재정의됩니다.
MenuFlyoutItem 및 ToggleMenuFlyoutItem 개체의 경우 키보드 가속기가 플라이아웃 텍스트와 함께 표시됩니다.
컨트롤에 둘 이상의 가속기가 정의된 경우 등록된 첫 번째 가속기가 표시됩니다.
컨트롤에 따라 [텍스트 재정의 속성을 사용하는 키보드 가속기]와 연결된 기본 키 조합 문자열을 재정의할 수 있습니다. MenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride 및 AppBarToggleButton.KeyboardAcceleratorTextOverride를 참조하세요.
가속기 키는 F1 - F12 및 Esc와 같은 단일 키 또는 명령을 호출하는 키 조합(Ctrl + Shift + B 또는 Ctrl C)일 수 있습니다. 일반적으로 Alt 키로 수정되고 명령 또는 컨트롤을 활성화하는 액세스 키(니모닉)와 다릅니다.
액셀러레이터와 연결된 요소가 표시되지 않더라도 액셀러레이터를 실행할 수 있습니다. 예를 들어 CommandBar의 CommandBar.SecondaryCommands 컬렉션에 있는 항목은 오버플로 메뉴를 확장하고 요소를 표시하지 않고 가속기를 사용하여 호출 할 수 있습니다 .
기본적으로 액셀러레이터에는 전역 scope 있습니다. 그러나 KeyboardAccelerator.ScopeOwner를 사용하여 scope 제한하거나 KeyboardAccelerator.IsEnabled를 사용하여 가속기를 완전히 사용하지 않도록 설정할 수 있습니다.