이 예제는 FocusVisualStyle 속성을 사용하여 리소스에서 포커스 비주얼 스타일을 만들고 컨트롤에 스타일을 적용하는 방법을 보여 줍니다.
예시
다음 예제는 컨트롤이 UI(사용자 인터페이스)에서 포커스가 있는 키보드인 경우에만 적용되는 추가 컨트롤 작성을 만드는 스타일을 정의합니다. 이 작업은 ControlTemplate을 사용하여 스타일을 정의한 다음 FocusVisualStyle 속성을 설정할 때 해당 스타일을 리소스로 참조하여 수행됩니다.
테두리를 닮은 외부 사각형은 사각형 영역 외부에 배치됩니다. 달리 수정하지 않는 한, 스타일 크기 조정은 포커스 비주얼 스타일이 적용되는 사각형 컨트롤의 ActualHeight와 ActualWidth를 사용합니다. 이 예제는 포커스가 있는 컨트롤 약간 밖에 테두리가 표시되도록 Margin에 음수 값을 설정합니다.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Page.Resources>
<Style x:Key="MyFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" StrokeThickness="1" Stroke="Red" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<StackPanel Background="Ivory" Orientation="Horizontal">
<Canvas Width="10"/>
<Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
Focus Here</Button>
<Canvas Width="100"/>
<Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
Focus Here</Button>
</StackPanel>
</Page>
FocusVisualStyle은 명시적 스타일 또는 테마 스타일의 모든 컨트롤 템플릿 스타일에 추가됩니다. 컨트롤의 기본 스타일은 ControlTemplate을 사용하고 해당 스타일을 Style 속성으로 설정하여 만들 수 있습니다.
포커스 비주얼 스타일은 포커스가 있는 요소마다 다른 스타일을 사용하는 대신 테마 또는 UI에서 일관되게 사용해야 합니다. 자세한 내용은 컨트롤의 포커스 스타일 지정 및 FocusVisualStyle을 참조하세요.
참고하십시오
.NET Desktop feedback