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

Определение

Получение или установка значения, определяющего возможность получения фокуса элементом.Gets or sets a value that indicates whether the element can receive focus. Это свойство зависимостей.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

Значение свойства

Значение true, если данный элемент может иметь фокус; в противном случае — значение false.true if the element is focusable; otherwise false. Значение по умолчанию — false.The default is false.

Реализации

Примеры

В следующем примере кода показан шаблон элемента управления для определенного пользовательского элемента управления, который задается Focusable false в одном из элементов шаблона.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>

Комментарии

Ввод с клавиатуры получает только элемент с фокусом ввода.Only the focused element receives keyboard input.

Focusable— Это метод доступа к свойствудлятого,чтовдействительностиявляетсясвойствомзависимостей.Microsoft .NETMicrosoft .NETFocusable is the Microsoft .NETMicrosoft .NET property accessor for what is in reality a dependency property. Это конкретное свойство зависимости довольно часто имеет свое видимое значение по умолчанию по-разному в производных классах элементов, особенно в элементах управления.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Обычно это происходит одним из двух способов:This commonly occurs in one of two ways:

  • Свойство зависимостей наследуется определенным производным классом, но этот производный класс переопределяет метаданные свойства зависимостей и изменяет значение свойства по умолчанию.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.

  • Стиль или шаблон применяется к элементу, который устанавливает значение свойства зависимостей по-разному.A style or template is applied to an element, which sets that dependency property value differently.

Например, очевидным «по умолчанию» Focusable Button для элемента управления Button будет true, несмотря на то, Focusable что наследуется как среда CLRcommon language runtime (CLR) свойство UIElementнепосредственно из.For example, the apparent "default" of Focusable for a Button control will be true, even though Button inherits Focusable as a среда CLRcommon language runtime (CLR) property directly from UIElement. Это связано с тем, что применяемое значение Focusable метаданных для свойства зависимостей было переопределено в статическом конструкторе Control базового класса, который располагается Button между UIElement и в иерархии классов.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.

Если наследуется от Control или его производными классами, Control переопределяет значение этого свойства по умолчанию на true.When inherited by Control or its derived classes, Control redefines the default value of this property to be true.

При наследовании Label методом (который Control является производным классом) значение по умолчанию снова определяется falseкак.When inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Сведения о свойстве зависимостейDependency Property Information

Поле идентификатораIdentifier field FocusableProperty
Свойства метаданных, для которых задано значениеtrueMetadata properties set to true НетNone

Примечания для тех, кто наследует этот метод

При наследовании от UIElement напрямую (в отличие от Control) следует подумать, должен ли элемент быть в фокусе, так как по умолчанию элемент не будет получать фокус.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. Если вы хотите, чтобы элемент был в фокусе, переопределите метаданные для этого свойства в статическом конструкторе типа следующим образом:If you wish your element to be focusable, override the metadata for this property within your type's static constructor as follows: [! код-CSharpкорепсеудокоде # уиелементшортоверриде] [! code-VBкорепсеудокоде # уиелементшортоверриде][!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride] где myElement должно быть именем класса типа, для которого переопределяется значение метаданных.where myElement should be the class name of the type that you are overriding the metadata value on.

Применяется к

Дополнительно