Nasıl programlı olarak C tuş olayları oluşturabilir#?
Nasıl programlı bir anahtar taklit edecek bir olay yaratmak klavyede basılan miyim?
CEVAP
Soru WPF etiketlenir ama cevapları şimdiye kadar belirli Win ve win 32.
WPF bunu yapmak için, sadece hedef KeyEventArgs ve çağrı RaiseEvent oluşturmak. Örneğin, bir Ekle göndermek için şu anda odaklı öğesi için Kapatıyorsa olay anahtar:
var key = Key.Insert; // Key to send
var target = Keyboard.FocusedElement; // Target element
var routedEvent = Keyboard.KeyDownEvent; // Event to send
target.RaiseEvent(
new KeyEventArgs(
Keyboard.PrimaryDevice,
PresentationSource.FromVisual(target),
0,
key)
{ RoutedEvent=routedEvent }
);
Bu çözüm Yerel Aramalar veya Windows iç dayanmaz ve diğerlerine göre çok daha güvenilir olmalıdır. Ayrıca, belirli bir öğe üzerinde bir tuşa basarak canlandırmanızı sağlar.
Bu kod PreviewKeyDown Kapatıyorsa, PreviewKeyUp ve KeyUp olayları için yalnızca geçerli olduğunu unutmayın. Eğer Button olayları göndermek istiyorsanız bunu yapacaksın yani:
var text = "Hello";
var target = Keyboard.FocusedElement;
var routedEvent = TextCompositionManager.TextInputEvent;
target.RaiseEvent(
new TextCompositionEventArgs(
InputManager.Current.PrimaryKeyboardDevice,
new TextComposition(InputManager.Current, target, text))
{ RoutedEvent = routedEvent }
);
Ayrıca unutmayın:
Kontrolleri Önizleme almak için bekliyoruz olaylar, örneğin PreviewKeyDown Kapatıyorsa getirmeniz
Hedef kullanma.(...) RaiseEvent olay hedefe doğrudan gönderir meta-veri işleme gibi olmadan Hızlandırıcılar, metin oluşturma ve IME. İstediğin bu normal. Eğer gerçekten varsa, diğer taraftan, ne için gerçek bir klavye taklit anahtarları nedense kullanırsınız İnputManager.() Processınput yerine.
Nasıl programlı olarak Android içinde ...
Nasıl programlı olarak gönderdiğiniz e...
Nasıl programlı olarak eğer benim app ...
Nasıl açıkladın programlı olarak Dinle...
Android: Görünüm.KİMLİK çatışmaları ön...