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 diatur 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 menjadi kenyataan 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" yang jelas dari Focusable untuk Button kontrol akan menjadi true, meskipun Button mewarisi Focusable sebagai properti runtime bahasa umum (CLR) langsung dari UIElement. Ini karena nilai metadata yang diterapkan untuk Focusable properti dependensi ditimpa dalam konstruktor statis kelas Control dasar, yang terletak di antara Button dan UIElement di hierarki kelas.
Ketika diwarisi oleh Control atau kelas turunannya, Control mendefinisikan ulang nilai default properti ini menjadi true.
Ketika diwarisi oleh Label (yang merupakan Control kelas turunan), nilai default lagi ditentukan ulang menjadi false.
Informasi Properti Dependensi
| Barang | Nilai |
|---|---|
| Bidang pengidentifikasi | FocusableProperty |
Properti metadata diatur ke true |
Tidak |
Catatan Bagi Inheritor
Ketika turunan dari UIElement 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))
myElement harus menjadi nama kelas dari jenis yang Anda ambil alih nilai metadatanya.