Bagikan melalui


UIElement.Focusable Properti

Definisi

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.

Berlaku untuk

Lihat juga