UIElement.Focusable Özellik

Tanım

Öğesinin odağı alıp alamayacağını gösteren bir değer alır veya ayarlar. Bu bir bağımlılık özelliğidir.

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

Özellik Değeri

true öğe odaklanabilirse; aksi takdirde false. Varsayılan değer: false.

Uygulamalar

Örnekler

Aşağıdaki örnek kod, belirli bir özel denetim için şablon içindeki öğelerden birini ayarlayan Focusablefalse bir denetim şablonunu gösterir.

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

Açıklamalar

Yalnızca odaklanmış öğe klavye girişi alır.

Focusable, gerçekte bağımlılık özelliği olan özellikler için Microsoft .NET özellik erişimcisidir. Bu belirli bağımlılık özelliği, özellikle denetimlerde türetilmiş öğe sınıflarında belirgin "varsayılan" değeri farklı ayarlanmıştır. Bu genellikle iki yoldan biriyle gerçekleşir:

  • Bağımlılık özelliği belirli bir türetilmiş sınıf tarafından devralınır, ancak bu türetilmiş sınıf bağımlılık özelliğinin meta verilerini geçersiz kılar ve özellik varsayılan değerini değiştirir.
  • Bağımlılık özelliği değerini farklı şekilde ayarlayan bir öğeye stil veya şablon uygulanır.

Örneğin, bir denetimin görünür "varsayılan" Focusable değeri, ortak dil çalışma zamanı (CLR) özelliği olarak doğrudan öğesinden Buttondevralsa trueButton bile olurFocusable.UIElement Bunun nedeni, bağımlılık özelliği için uygulanan meta veri değerinin Focusable sınıf hiyerarşisinde ile Control arasında Button yer alan temel sınıfın UIElement statik oluşturucusunda geçersiz kılınmış olmasıdır.

veya türetilmiş sınıfları tarafından Control devralındığında, Control bu özelliğin varsayılan değerini olacak şekilde trueyeniden tanımlar.

tarafından Label devralındığında (türetilmiş bir Control sınıftır), varsayılan değer olarak yeniden tanımlanır false.

Bağımlılık Özelliği Bilgileri

Öğe Değer
Tanımlayıcı alanı FocusableProperty
Meta veri özellikleri olarak ayarlandı true Hiçbiri

Devralanlara Notlar

öğesinden UIElement doğrudan türetilirken (öğesinden Controlfarklı olarak) öğenizin odaklanabilir olmasını isteyip istemediğinizi düşünün, çünkü varsayılan olarak öğe odaklanılabilir olmayacaktır. Öğenizin odaklanabilir olmasını istiyorsanız, türünüzün statik oluşturucusunun içindeki bu özelliğin meta verilerini aşağıdaki gibi geçersiz kılın:

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

myElement meta veri değerini geçersiz kıldığınız türün sınıf adı olmalıdır.

Şunlara uygulanır

Ayrıca bkz.