احتفظ بركز على عنصر واجهة المستخدم ، ولكن انقر فوق زر في مربع حوار مختلف. WPF C#

StackOverflow https://stackoverflow.com/questions/1616688

  •  06-07-2019
  •  | 
  •  

سؤال

أقوم بتطوير تطبيق صديق لللمس يتضمن أيضًا لوحة مفاتيح افتراضية. لوحة المفاتيح الافتراضية الخاصة بي في نافذتها الخاصة ، مما يسمح بنقلها. المشكلة هي أنه عند النقر فوق مفتاح على لوحة المفاتيح ، لم يعد مربع النص في نافذة التطبيق الرئيسية التركيز. التبديل من التطبيق الرئيسي هو النافذة النشطة إلى مربع حوار لوحة المفاتيح كونها النافذة النشطة يعني أن أي حقل على النافذة الرئيسية لم يعد له تركيز. كيف يمكنني الالتفاف حول هذا؟

حاولت تعيين نافذة لوحة المفاتيح على أنها غير قابلة للتركيز. على الرغم من أن هذا ربما يكون جيدًا ، إلا أنه لم يحل مشكلتي.

هل كانت مفيدة؟

المحلول

يمكنك فقط إعادة التركيز إلى النافذة الأصلية بشكل غير متزامن:

public static void BackgroundFocus(this UIElement el)    
{        
    Action a = () => el.Focus();        
    el.Dispatcher.BeginInvoke(DispatcherPriority.Background, a);    
}

ولكن هذا ليس مثاليًا ، لأن التسمية التوضيحية الأصلية ستومض عند فقدان التركيز ... لماذا لا تستخدم يظهر فجأة في حين أن؟

نصائح أخرى

تحقق من الوظيفة setForeGroundWindow () ، لقد استخدمت هذا الوقت الطويل في بعض المكان الذي قد يساعدك فيه مشروعي في هذا قد يساعدك في ذلك

باستخدام يظهر فجأة, ، كما هو مقترح بالفعل ، يبدو وكأنه حل جيد. أما بالنسبة للنافذة المخصصة ، فحاول إعداد Window.ShowActivated لخطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top