UIElement.Focusable Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy element może odebrać fokus.Gets or sets a value that indicates whether the element can receive focus. Jest to właściwość zależności.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

Wartość właściwości

Boolean

true Jeśli element jest skoncentrowany; w przeciwnym razie false .true if the element is focusable; otherwise false. Wartość domyślna to false.The default is false.

Implementuje

Przykłady

Poniższy przykładowy kod ilustruje szablon kontrolki dla konkretnej kontrolki niestandardowej, która ustawia Focusable false jeden z elementów w ramach szablonu.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>

Uwagi

Tylko element skoncentrowany otrzymuje dane wejściowe z klawiatury.Only the focused element receives keyboard input.

Focusable jest akcesorem Microsoft .NET właściwości dla właściwości zależności.Focusable is the Microsoft .NET property accessor for what is in reality a dependency property. Ta właściwość zależności często ma swoją pozornie ustawioną wartość "default" jako inną niż pochodna Klasa elementu, szczególnie w kontrolkach.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Jest to często wykonywane na jeden z dwóch sposobów:This commonly occurs in one of two ways:

  • Właściwość Dependency jest dziedziczona przez określoną klasę pochodną, ale ta klasa pochodna przesłania metadane właściwości Dependency i zmienia wartość domyślną właściwości.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.

  • Styl lub szablon jest stosowany do elementu, który ustawia wartość właściwości zależności inaczej.A style or template is applied to an element, which sets that dependency property value differently.

Na przykład pozorna wartość "default" Focusable dla Button kontrolki będzie równa true , nawet Button Jeśli dziedziczy Focusable jako właściwość środowiska uruchomieniowego języka wspólnego (CLR) bezpośrednio z programu 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) property directly from UIElement. Dzieje się tak, ponieważ zastosowana wartość metadanych dla Focusable właściwości Dependency została przesłonięta w konstruktorze statycznym Control klasy bazowej, która znajduje się między Button i UIElement w hierarchii klas.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.

W przypadku dziedziczenia przez Control lub jego klas pochodnych, program Control ponownie definiuje domyślną wartość tej właściwości true .When inherited by Control or its derived classes, Control redefines the default value of this property to be true.

Gdy dziedziczone przez Label (która jest Control klasą pochodną), wartość domyślna jest ponownie zdefiniowana jako false .When inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Informacje dotyczące właściwości zależnościDependency Property Information

Pole identyfikatoraIdentifier field FocusableProperty
Właściwości metadanych ustawione na trueMetadata properties set to true BrakNone

Uwagi dotyczące dziedziczenia

W przypadku wyprowadzania UIElement bezpośrednio (w przeciwieństwie do Control ), należy rozważyć, czy chcesz, aby element miał fokus, ponieważ domyślnie element nie będzie skoncentrowany.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. Jeśli chcesz, aby element miał fokus, Zastąp metadane tej właściwości w konstruktorze statycznym typu w następujący sposób: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] gdzie myElement powinna być nazwą klasy typu, w którym jest zastępowana wartość metadanych.where myElement should be the class name of the type that you are overriding the metadata value on.

Dotyczy

Zobacz też