UIElement.Focusable Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menunjukkan apakah elemen dapat menerima fokus. Ini adalah properti dependensi.
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
Nilai Properti
true
jika elemen dapat difokuskan; jika tidak, false
. Defaultnya adalah false
.
Penerapan
Contoh
Contoh kode berikut mengilustrasikan templat kontrol untuk kontrol kustom tertentu, yang mengatur Focusablefalse
pada salah satu elemen dalam templat.
<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>
Keterangan
Hanya elemen yang berfokus yang menerima input keyboard.
Focusable adalah aksesor properti Microsoft .NET untuk apa yang sebenarnya merupakan properti dependensi. Properti dependensi khusus ini cukup sering memiliki nilai "default" yang jelas diatur secara berbeda dalam kelas elemen turunan, terutama dalam kontrol. Ini biasanya terjadi dengan salah satu dari dua cara:
Properti dependensi diwariskan oleh kelas turunan tertentu, tetapi kelas turunan tersebut mengambil alih metadata properti dependensi dan mengubah nilai default properti.
Gaya atau templat diterapkan ke elemen, yang menetapkan nilai properti dependensi tersebut secara berbeda.
Misalnya, "default" Focusable yang jelas untuk kontrol Button akan true
, meskipun Button mewarisi Focusable sebagai properti runtime bahasa umum (CLR) langsung dari UIElement. Ini karena nilai metadata yang diterapkan untuk properti dependensi Focusable ditimpa dalam konstruktor statis kelas dasar Control, yang terletak antara Button dan UIElement dalam hierarki kelas.
Ketika diwarisi oleh Control atau kelas turunannya, Control mendefinisikan ulang nilai default properti ini menjadi true
.
Ketika diwarisi oleh Label (yang merupakan kelas turunan Control), nilai default lagi ditentukan ulang untuk false
.
Informasi Properti Dependensi
Bidang pengidentifikasi | FocusableProperty |
Properti metadata diatur ke true |
Tidak |
Catatan Bagi Inheritor
Saat turunan dari UIElement secara langsung (dibandingkan dengan dari Control), pertimbangkan apakah Anda ingin elemen Anda dapat difokuskan, karena secara default elemen tidak akan dapat difokuskan. Jika Anda ingin elemen Anda dapat difokuskan, ambil alih metadata untuk properti ini dalam konstruktor statis jenis Anda sebagai berikut:
FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));
FocusableProperty.OverrideMetadata(GetType(myElement), New UIPropertyMetadata(True))
di mana myElement
harus menjadi nama kelas dari jenis tempat Anda mengambil alih nilai metadata.