UIElement.Focusable Proprietà

Definizione

Recupera o imposta un valore che indica se l'elemento può ricevere lo stato attivo. Si tratta di una proprietà di dipendenza.

public:
 property bool Focusable { bool get(); void set(bool value); };
public bool Focusable { get; set; }
member this.Focusable : bool with get, set
Public Property Focusable As Boolean

Valore della proprietà

Boolean

true se l'elemento è con stato attivabile. In caso contrario, false. Il valore predefinito è false.

Implementazioni

Esempio

Il codice di esempio seguente illustra un modello di controllo per un determinato controllo personalizzato, che imposta Focusable false su uno degli elementi all'interno del modello.

<Window.Resources>
  <Style x:Key="TextBoxNoScrollViewer" TargetType="{x:Type TextBoxBase}">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type TextBoxBase}">
          <Border 
            CornerRadius="2" 
            Background="{TemplateBinding Background}" 
            BorderThickness="{TemplateBinding BorderThickness}" 
            BorderBrush="{TemplateBinding BorderBrush}"  
          >
            <!-- 
            The control template for a TextBox or RichTextBox must
            include an element tagged as the content host.  An element is 
            tagged as the content host element when it has the special name
            PART_ContentHost.  The content host element must be a ScrollViewer,
            or an element that derives from Decorator.  
            -->
            <AdornerDecorator 
              x:Name="PART_ContentHost"
              Focusable="False" 
            />
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</Window.Resources>

Commenti

Solo l'elemento incentrato riceve l'input della tastiera.

Focusable è la funzione di accesso alla proprietà Microsoft .NET per ciò che è in realtà una proprietà di dipendenza. Questa particolare proprietà di dipendenza ha spesso il valore "predefinito" evidente impostato in modo diverso nelle classi di elementi derivate, in particolare nei controlli. Questo comportamento si verifica comunemente in uno dei due modi seguenti:

  • La proprietà di dipendenza viene ereditata da una determinata classe derivata, ma tale classe derivata esegue l'override dei metadati della proprietà di dipendenza e modifica il valore predefinito della proprietà.

  • Uno stile o un modello viene applicato a un elemento, che imposta il valore della proprietà di dipendenza in modo diverso.

Ad esempio, l'apparente "impostazione predefinita" di Focusable per un Button controllo sarà true, anche se Button eredita Focusable come proprietà CLR (Common Language Runtime) direttamente da UIElement. Si tratta del fatto che il valore dei metadati applicato per la Focusable proprietà di dipendenza è stato sottoposto a override all'interno del costruttore statico della Control classe base, che si trova tra Button e UIElement nella gerarchia di classi.

Se ereditata da o dalle Control relative classi derivate, Control ridefine il valore predefinito di questa proprietà in modo che sia true.

Quando ereditato da Label (ovvero una Control classe derivata), il valore predefinito viene ridefinito in modo che sia false.

Informazioni proprietà di dipendenza

Campo Identificatore FocusableProperty
Proprietà dei metadati impostate su true Nessuno

Note per gli eredi

Quando deriva da direttamente (anziché da UIElement Control), valutare se si desidera che l'elemento sia attivabile, perché per impostazione predefinita l'elemento non sarà attivabile. Se si desidera che l'elemento sia attivabile, eseguire l'override dei metadati per questa proprietà all'interno del costruttore statico del tipo come indicato di seguito: ::code language="csharp" source="~/snippets/csharp/System. Windows/ComponentResourceKey/.ctor/corepseudocode.cs" id="Snippetuielementshortoverride": ::code language="vb" source="~/snippets/visualbasic/VS_Snippets_Wpf/CorePseudocode/visualbasic/corepseudocode.vb" id="Snippetuielementshortoverride": dove myElement deve essere il nome della classe del tipo in cui si esegue l'override del valore dei metadati.

Si applica a

Vedi anche