UIElement.Focusable 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,這個值表示專案是否可以接收焦點。 這是相依性屬性。
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 相依性屬性的套用元數據值是在類別階層中 Button 與 UIElement 之間之 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
應該是您覆寫元數據值的型別類別名稱。