türetilen kontrol alanı anahtarı denir değil onkeydown(), bunu gibi TextBox türemiş bir kontrol:WPF: WPF uygulamasında WPF TextBox
public class SelectableTextBlock : TextBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
e.Handled = false;
}
}
onkeydown yöntem değildir TextBox'a bir boşluk girerken veya Backspace'e isabet ederken çağrılır, ancak normal yazdırılabilir karakterler (örn. 'a') ve değiştirici tuşlar (örn.) içeren diğer girişler için yangın yapar. Ben seçilebilir, düzenlenemeyen metni görüntülemek böylece ben IsReadOnly ile bu denetimi kullanıyorum
true olarak ayarlanır. WPFToolkit'in DataGrid'inde kullanılan kontrol ve ben de KeyDown olaylarının, SelectableTextBlock'un odağı olsa bile veri ızgarasını yaymasını istiyorum, bu yüzden olayı açıkça işlenmemiş olarak işaretlemek için özel bir kontrol kullanıyorum. Sorun şu ki, bu olay belirli anahtarlar için kontrolümde bile bunu yapmadı. Bunu elde etmek için DataGrid'de OnPreviewKeyDown'ı kullanamıyorum, çünkü veri ızgarasında kullanılan diğer kontrollerin KeyDown olayını yutmasını istiyorum.
Anahtar anahtarının yayılması için KeyDown olayını nasıl alabileceğimi bilen var mı?
Teşekkürler.
Cevabınız için teşekkür ederiz, Wim. Bu, ilgili bir sorun gibi görünüyor. Olayın boşluk karakterleri ve geri boşluk için tetiklenmediğini ve tuş basımlarını sildiklerini tespit ettim. senin durumda boşluk tuşuna basın durdurmaya çalışıyorlardı Oysa metin kutusuna tarafından ele ve önizleme ele alarak yaptım ediliyor, kendim için işe yaramaz bu nedenle bu ebeveyne kadar etkinlik balonunu izin denetimlerini çalışıyorum . El ile anahtar aşağı olayları işlemek ve bunları işlenecek şekilde ayarlayan bir geçici çözümüm var. Orijinal soruma ilişkin kodu orijinal soruma cevap olarak gönderirim. Hala daha iyi bir yol olmalı diye düşünüyorum. sayesinde E. – Ergwun
okumalıymışım O: "Ben olayları aşağı ele anahtarı kolları ve işlenmeyen * olarak ayarlar * geçici bir çözüm var." – Ergwun