Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

FrameworkElement.FocusVisualStyle-Eigenschaft

Ruft eine Eigenschaft ab, mit der Darstellung, Effekte und andere Stilmerkmale, die auf dieses Element angewendet werden, sobald es den Tastaturfokus erhält, benutzerdefiniert angepasst werden können, oder legt diese Eigenschaft fest.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public Style FocusVisualStyle { get; set; }
<object FocusVisualStyle="{resourceExtension styleResourceKey}"/>

XAML-Werte

resourceExtension

Eines der folgenden Objekte: StaticResource oder DynamicResource. Siehe XAML-Ressourcen.

styleResourceKey

Der Schlüssel, der den angeforderten Stil identifiziert. Der Schlüssel verweist in einem ResourceDictionary auf eine vorhandene Ressource.

HinweisHinweis

Eine Eigenschaftenelementsyntax ist technisch möglich, aber nicht empfehlenswert. Siehe Inlinestile und -vorlagen. Ein Bindungsverweis mit TemplateBinding oder Binding ist ebenfalls möglich, wird jedoch nicht empfohlen.

Eigenschaftswert

Typ: System.Windows.Style
Der gewünschte Stil, der auf das Fokuselement angewendet werden soll. Der in der Abhängigkeitseigenschaft deklarierte Standardwert ein leerer statischer Style. Der tatsächliche Wert zur Laufzeit ist jedoch häufig (aber nicht immer) ein Stil, der von der Designunterstützung für Steuerelemente bereitgestellt wird.

Bezeichnerfeld

FocusVisualStyleProperty

Auf true festgelegte Metadateneigenschaften

NONE

Diese Eigenschaft wirkt sich auf das Erscheinungsbild aus, meldet aber keinen AffectsRender in Metadaten. Das liegt daran, dass das Erscheinungsbild ereignisgesteuert und nicht immer anwendbar ist. Deshalb sollten visuelle oder Layoutinformationen in Metadaten nicht allgemein gemeldet werden.

Prinzipiell sollte das visuelle Verhalten des Fokus, das für ein Steuerelement übernommen wird, innerhalb der Steuerelemente kohärent sein. Das sinnvollste Verfahren zum Erzwingen von Kohärenz besteht darin, den visuellen Stil des Fokus lediglich dann zu ändern, wenn Sie ein vollständiges Design erstellen. Das Festlegen dieser Eigenschaft für einzelne Steuerelementstile und nicht als Teil eines Designs wird als Verwendung dieser Eigenschaft nicht empfohlen, da dies zu einer verwirrenden Gestaltung der Benutzeroberfläche hinsichtlich des Tastaturfokus führen kann. Wenn Sie steuerelementspezifisches Verhalten festlegen möchten, das designübergreifend explizit nicht kohärent ist, stellt das Verwenden von Auslösern in Stilen für einzelne Eingabezustandseigenschaften ein wesentlich besser geeignetes Verfahren dar, z. B. das Verwenden von IsFocused oder IsKeyboardFocusWithin, wobei der visuelle Stil des vorhandenen Fokus nicht beeinträchtigt werden sollte. Weitere Informationen über den Entwurf von FocusVisualStyle und alternative Fokuseigenschaften finden Sie unter Fokusstile in Steuerelementen und FocusVisualStyle.

Dieses Beispiel veranschaulicht, wie ein Stil für den visuellen Fokus im Allgemeinen erstellt und über die FocusVisualStyle-Eigenschaft auf ein Steuerelement angewendet wird.

Das folgende Beispiel definiert einen Stil zum Erstellen einer zusätzlichen Zusammensetzung von Steuerelementen, wenn das entsprechende Steuerelement in der Benutzeroberfläche (user interface, UI) den Tastaturfokus erhält. Dies wird erreicht, indem ein Stil mit einer ControlTemplate definiert wird und dieser Stil anschließend beim Festlegen der FocusVisualStyle-Eigenschaft als Ressource referenziert wird.

Ein externes Rechteck, das einem Rahmen ähnelt, wird außerhalb des rechteckigen Bereichs platziert. Sofern nicht anderweitig modifiziert, werden für die Größenfestlegung des Stils die ActualHeight und die ActualWidth des rechteckigen Steuerelements verwendet, auf das der Stil für den visuellen Fokus angewendet wird. In diesem Beispiel werden negative Werte für den Margin festgelegt, damit der Rahmen etwas außerhalb des fokussierten Steuerelements dargestellt wird.


<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>


Ein FocusVisualStyle wirkt additiv zu jedem Vorlagenstil für Steuerelemente, der aus einem expliziten Stil oder einem Designstil stammt. Der primäre Stil für ein Steuerelement kann weiterhin über eine ControlTemplate und das Festlegen dieses Stils für die Style-Eigenschaft erstellt werden.

Stile für den visuellen Fokus sollten konsistent in einem Design oder einer Benutzeroberfläche verwendet werden. Es empfiehlt sich nicht, verschiedene Stile für jedes fokussierbare Element zu verwenden. Ausführlichere Informationen hierzu finden Sie unter Fokusstile in Steuerelementen und FocusVisualStyle.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft