Sdílet prostřednictvím


Postupy: Použití FocusVisualStyle u ovládacího prvku

Tento příklad ukazuje, jak vytvořit vizuální styl fokusu v prostředcích a použít styl na ovládací prvek pomocí vlastnosti FocusVisualStyle.

Příklad

Následující příklad definuje styl, který vytvoří další skládání ovládacích prvků, které se použije, pouze když je tento ovládací prvek zaměřen klávesnicí v uživatelském rozhraní (UI). Toho se dosahuje definováním stylu s ControlTemplatea následným odkazem na tento styl jako prostředek při nastavování vlastnosti FocusVisualStyle.

Vnější obdélník, který se podobá ohraničení, je umístěn mimo obdélníkovou oblast. Pokud nedošlo k jiné úpravě, velikost stylu používá ActualHeight a ActualWidth obdélníkového ovládacího prvku, kde je aplikován vizuální styl fokusu. V tomto příkladu se pro Margin nastaví záporné hodnoty, aby se ohraničení zobrazovaly mírně mimo fokusový ovládací prvek.

<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 se přičítá k jakémukoli stylu šablony ovládacího prvku, který pochází z explicitního stylu nebo stylu motivu; Primární styl ovládacího prvku je možné vytvořit pomocí ControlTemplate a nastavit tento styl na vlastnost Style.

Vizuální styly zaměření by se měly používat konzistentně napříč tématem nebo rozhraním, a ne používat odlišný pro každý prvek, na který lze zaostřit. Podrobnosti najdete v tématu Styling pro fokus v ovládacích prvcích a FocusVisualStyle.

Viz také