खोज…


विंडोज 8 और विंडोज 10 पर टच कीबोर्ड दिखाना

WPF एप्स .NET .NET 4.6.2 और बाद में लक्ष्यीकरण

WPF ऐप्स के साथ .NET फ्रेमवर्क 4.6.2 (और बाद में) को लक्षित करने के लिए, नरम कीबोर्ड को स्वचालित रूप से आमंत्रित किया जाता है और आवश्यक अतिरिक्त चरणों के बिना खारिज कर दिया जाता है।

.NET फ्रेमवर्क 4.6.2 के साथ WPF सॉफ्ट कीबोर्ड सपोर्ट

WPF एप्स .NET फ्रेमवर्क 4.6.1 और उससे पहले के लक्ष्यीकरण

WPF मुख्य रूप से टच सक्षम नहीं है, जिसका अर्थ है कि जब उपयोगकर्ता डेस्कटॉप पर WPF एप्लिकेशन के साथ इंटरैक्ट करता है, तो TextBox नियंत्रण पर ध्यान केंद्रित करने पर ऐप स्वचालित रूप से टच कीबोर्ड प्रदर्शित नहीं करेगा । यह टैबलेट के उपयोगकर्ताओं के लिए एक असुविधाजनक व्यवहार है, उन्हें सिस्टम टास्क बार के माध्यम से मैन्युअल रूप से टच कीबोर्ड खोलने के लिए मजबूर करता है।

विंडोज में टच कीबोर्ड

वैकल्पिक हल

टच कीबोर्ड वास्तव में एक क्लासिक exe एप्लिकेशन है जो प्रत्येक विंडोज 8 और विंडोज 10 पीसी पर निम्न पथ पर पाया जा सकता है: C:\Program Files\Common Files\Microsoft Shared\Ink\TabTip.exe

इस ज्ञान के आधार पर, आप से ली गई एक कस्टम नियंत्रण बना सकते हैं TextBox जिस पर सुनता है, GotTouchCapture घटना (जब नियंत्रण स्पर्श का उपयोग कर फोकस हो जाता है इस घटना कहा जाता है) और स्पर्श कीबोर्ड की प्रक्रिया शुरू होता है।

public class TouchEnabledTextBox : TextBox
{
    public TouchEnabledTextBox()
    {
        this.GotTouchCapture += TouchEnabledTextBox_GotTouchCapture;
    }

    private void TouchEnabledTextBox_GotTouchCapture(
       object sender, 
       System.Windows.Input.TouchEventArgs e )
    {
        string touchKeyboardPath =
           @"C:\Program Files\Common Files\Microsoft Shared\Ink\TabTip.exe";        
        Process.Start( touchKeyboardPath );
    }
}

बनाई गई प्रक्रिया को कैच करके आप इसे और भी बेहतर कर सकते हैं और फिर नियंत्रण खोने के बाद इसे मार सकते हैं:

//added field
private Process _touchKeyboardProcess = null;
 
//replace Process.Start line from the previous listing with
_touchKeyboardProcess = Process.Start( touchKeyboardPath );

अब आप LostFocus घटना को तार कर सकते हैं:

//add this at the end of TouchEnabledTextBox's constructor
this.LostFocus += TouchEnabledTextBox_LostFocus;

//add this method as a member method of the class
private void TouchEnabledTextBox_LostFocus( object sender, RoutedEventArgs eventArgs ){
   if ( _touchKeyboardProcess != null ) 
   {
      _touchKeyboardProcess.Kill();
      //nullify the instance pointing to the now-invalid process
      _touchKeyboardProcess = null;
   }
}

विंडोज 10 में टैबलेट मोड के बारे में ध्यान दें

विंडोज 10 ने एक टैबलेट मोड पेश किया, जो पीसी के स्पर्श-प्रथम तरीके से उपयोग करने पर सिस्टम के साथ सहभागिता को सरल करता है। यह मोड, अन्य सुधारों के अलावा, सुनिश्चित करता है कि टच कीबोर्ड WPF ऐप्स सहित क्लासिक डेस्कटॉप ऐप्स के लिए भी स्वचालित रूप से प्रदर्शित होता है

विंडोज 10 सेटिंग्स दृष्टिकोण

टैबलेट मोड के अलावा, विंडोज 10 स्वचालित रूप से टैबलेट मोड के बाहर भी क्लासिक ऐप के लिए टच कीबोर्ड प्रदर्शित कर सकता है। यह व्यवहार, जो डिफ़ॉल्ट रूप से अक्षम है, सेटिंग्स ऐप में सक्षम किया जा सकता है।

सेटिंग्स ऐप में, डिवाइसेस श्रेणी में जाएं और टाइपिंग चुनें। यदि आप सभी तरह से नीचे स्क्रॉल करते हैं, तो आप "टच कीबोर्ड या हैंड राइटिंग पैनल दिखाएं जब टैबलेट मोड में न हो और कोई कीबोर्ड संलग्न न हो" सेटिंग, जिसे आप सक्षम कर सकते हैं।

टच कीबोर्ड सेटिंग

यह ध्यान देने योग्य है, कि यह सेटिंग केवल स्पर्श क्षमताओं वाले उपकरणों पर दिखाई देती है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow