SORU
3 Mayıs 2009, Pazar


WPF ve başlangıç odak

WPF uygulaması başladığında, hiçbir şey odak var gibi görünüyor.

Bu gerçekten çok garip. Kullandım çerçeve ne beklersiniz sadece her diğer: koyar ilk kontrol ilk odak sekme. Ama ben teyit işte bu WPF, sadece benim app -- eğer yeni bir Pencere, ve sadece bir TextBox ve çalıştır uygulaması, TextBox yok focus kadar ı tıklatın veya SEKME tuşuna basın. İğrenç.

Benim gerçek uygulama sadece bir TextBox daha karmaşıktır. UserControls içinde UserControls birkaç kat var. Bu UserControls="" ve/KeyUp işleyicileri Kapatıyorsa, ve odak benim pencere açar. en kısa sürede sahip olmak istiyorum Gerçek Odaklanabilir vardır Hala bir WPF acemi sayılırım ama çok şans bunu yapmak için nasıl sergiyi yaşıyorum.

Benim app başlayın ve Tab tuşuna basın, sonra odak odaklanabilir benim kontrolüm gider ve istediğim şekilde çalışmaya başlar. Ama benim kullanıcı penceresini kullanarak başlamadan önce Sekmesini vurmak istemiyorum.

Odak ile temas ettim.Ama ben, bunu ayarlamak için kontrol (üst düzey Pencere? değil emin FocusedElement odaklanabilir denetimi içeren üst? bu odaklanabilir kendini kontrol?) ya da ayarlamak için ne.

Ben derinden iç içe geçmiş kontrol almak için ilk odak penceresi açılır açılmaz olması için ne yapmam gerekiyor? Ya da daha iyisi, sekme sırasına ilk odaklanabilir denetim odağı için?

CEVAP
4 Mayıs 2009, PAZARTESİ


Reflektör aracılığıyla Odaklanabilir özelliği nerede kullanıldığını görmek için kazmak için parlak bir fikrim yoktu, ve bu çözüm yolumu buldum. Sadece camdan kurucusuna aşağıdaki kodu eklemek gerekir:

Loaded  = (sender, e) =>
    MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

Bu herhangi bir pencere ve Sadece Çalışma içine düşmüş olması gerektiğine dair genel bir çözüm otomatik olarak sekme sırasına ilk denetimi seçin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigBoyTV

    BigBoyTV

    25 EYLÜL 2013
  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • PUSHER

    PUSHER

    11 HAZİRAN 2014