UIElement.Focusable UIElement.Focusable UIElement.Focusable UIElement.Focusable Property

Definizione

Recupera o imposta un valore che indica se l'elemento può ricevere lo stato attivo.Gets or sets a value that indicates whether the element can receive focus. Si tratta di una proprietà di dipendenza.This is a dependency property.

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à

true se l'elemento è con stato attivabile. In caso contrario, false.true if the element is focusable; otherwise false. Il valore predefinito è false.The default is false.

Implementazioni

Esempi

Nell'esempio di codice seguente viene illustrato un modello di controllo per un particolare controllo personalizzato, Focusable che imposta false su uno degli elementi all'interno del modello.The following example code illustrates a control template for a particular custom control, which sets Focusable false on one of the elements within the template.

<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 con stato attivo riceve l'input da tastiera.Only the focused element receives keyboard input.

Focusableè la Microsoft .NETMicrosoft .NET funzione di accesso alla proprietà per ciò che è in realtà una proprietà di dipendenza.Focusable is the Microsoft .NETMicrosoft .NET property accessor for what is in reality a dependency property. Questa particolare proprietà di dipendenza ha molto spesso un valore "default" apparentemente impostato in modo diverso nelle classi degli elementi derivati, in particolare nei controlli.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Questa situazione si verifica in genere in uno dei due modi seguenti:This commonly occurs in one of two ways:

  • 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à.The dependency property is inherited by a particular derived class, but that derived class overrides the metadata of the dependency property and changes the property default value.

  • Uno stile o un modello viene applicato a un elemento, che imposta il valore della proprietà di dipendenza in modo diverso.A style or template is applied to an element, which sets that dependency property value differently.

Ad esempio, l'apparente "predefinito" Focusable di per Button un controllo sarà true, anche se Button eredita Focusable come Common Language Runtime (CLR)common language runtime (CLR) proprietà direttamente da UIElement.For example, the apparent "default" of Focusable for a Button control will be true, even though Button inherits Focusable as a Common Language Runtime (CLR)common language runtime (CLR) property directly from UIElement. Questo è dovuto al fatto che il valore dei Focusable metadati applicati per la proprietà Control di dipendenza è stato sottoposto a override all'interno del costruttore statico Button della UIElement classe base, che si trova tra e nella gerarchia di classi.This is because the applied metadata value for the Focusable dependency property was overridden within the static constructor of the Control base class, which is situated between Button and UIElement in the class hierarchy.

Quando viene ereditato Control da o dalle classi derivate, Control ridefinisce il valore predefinito di questa proprietà truein modo che sia.When inherited by Control or its derived classes, Control redefines the default value of this property to be true.

Quando ereditato da Label (ovvero una Control classe derivata), il valore predefinito viene falsenuovamente ridefinito come.When inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Informazioni proprietà di dipendenzaDependency Property Information

Campo identificatoreIdentifier field FocusableProperty
Proprietà dei metadati impostate sutrueMetadata properties set to true nessunoNone

Note per gli eredi

Quando si deriva da UIElement direttamente (anziché da Control), considerare se si vuole che l'elemento sia attivabile, perché per impostazione predefinita l'elemento non sarà attivabile.When deriving from UIElement directly (as opposed to from Control), consider whether you wish your element to be focusable, because by default the element will not be focusable. Se si vuole che l'elemento sia attivabile, eseguire l'override dei metadati per questa proprietà all'interno del costruttore statico del tipo, come indicato di seguito:If you wish your element to be focusable, override the metadata for this property within your type's static constructor as follows: [!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride][!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride] dove myElement deve essere il nome della classe del tipo su cui si esegue l'override del valore dei metadati.where myElement should be the class name of the type that you are overriding the metadata value on.

Si applica a

Vedi anche