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。それ以外の場合は falsetrue 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 .NET何が実際には、依存関係プロパティのプロパティ アクセサー。Focusable 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. これは、2 つの方法のいずれかでよく発生します。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.

などの明らかな「既定」のFocusableButtonコントロールであるtrue場合でも、Button継承Focusableとして、共通言語ランタイム (CLR)common 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 共通言語ランタイム (CLR)common language runtime (CLR) property directly from UIElement. これは、値のメタデータを適用するため、Focusableの静的コンス トラクター内で依存関係プロパティのオーバーライドされた、Control基底クラスで、間に配置されるButtonUIElementクラス階層です。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クラスの派生)、既定値がもう一度再定義するfalseWhen 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: [!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride][!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.

適用対象

こちらもご覧ください