共用方式為


UIElement.Focusable 屬性

定義

取得或設定值,這個值表示專案是否可以接收焦點。 這是相依性屬性。

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。 預設值為 false

實作

範例

下列範例程式代碼說明特定自定義控件的控件範本,它會在範本內的其中一個項目上設定 Focusablefalse

<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>

備註

只有焦點元素會接收鍵盤輸入。

Focusable 是實際相依性屬性Microsoft .NET 屬性存取子。 這個特定相依性屬性通常會在衍生元素類別中以不同的方式設定其明顯的「預設值」值,特別是在控件中。 這通常會以下列兩種方式之一發生:

  • 相依性屬性是由特定的衍生類別繼承,但衍生類別會覆寫相依性屬性的元數據,並變更屬性預設值。

  • 樣式或範本會套用至元素,以不同的方式設定該相依性屬性值。

例如,Button 控件 Focusable 的明顯「預設值」將會 true,即使 Button 直接從 UIElement繼承 Focusable 為 Common Language Runtime (CLR) 屬性。 這是因為 Focusable 相依性屬性的套用元數據值是在類別階層中 ButtonUIElement 之間之 Control 基類的靜態建構函式內覆寫的。

Control 或其衍生類別繼承時,Control 重新定義這個屬性的預設值,以 true

Label 繼承時(這是 Control 衍生類別),預設值會再次重新定義為 false

相依性屬性資訊

標識元欄位 FocusableProperty
設定為 true 的元數據屬性 沒有

給繼承者的注意事項

直接衍生自 UIElement 時(與 Control相反),請考慮您是否希望元素成為可設定焦點,因為根據預設,元素將無法成為焦點。 如果您想要讓元素成為可焦點,請在您類型的靜態建構函式中覆寫此屬性的元數據,如下所示:

FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));
FocusableProperty.OverrideMetadata(GetType(myElement), New UIPropertyMetadata(True))

其中 myElement 應該是您覆寫元數據值的型別類別名稱。

適用於

另請參閱