मैं यह पता लगाने के लिए निम्न कोड का उपयोग कर रहा हूं कि कोई उपयोगकर्ता टेबलेट मोड में है या नहीं। मैं एक भूतल प्रो पर हूं और जब मैं कीबोर्ड को डीक्यूपल करता हूं और पीसी को टैबलेट में बना देता हूं, IsTabletMode
सत्य देता है (जो इसे करना चाहिए।) जब मैं स्क्रीन को डीकॉप्लिंग किए बिना "टैबलेट मोड" बटन का उपयोग करता हूं, तो IsTabletMode
हमेशा झूठा रिटर्न देता है। क्या किसी ने इसका अनुभव किया है और मैं इसे कैसे हल कर सकता हूं?टैबलेट मोड का पता कैसे लगाएं
/*
* Credit to Cheese Lover
* Retrieved From: http://stackoverflow.com/questions/31153664/how-can-i-detect-when-window-10-enters-tablet-mode-in-a-windows-forms-applicatio
*/
public static class TabletPCSupport
{
private static readonly int SM_CONVERTIBLESLATEMODE = 0x2003;
private static readonly int SM_TABLETPC = 0x56;
private Boolean isTabletPC = false;
public Boolean SupportsTabletMode { get { return isTabletPC; }}
public Boolean IsTabletMode
{
get
{
return QueryTabletMode();
}
}
static TabletPCSupport()
{
isTabletPC = (GetSystemMetrics(SM_TABLETPC) != 0);
}
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "GetSystemMetrics")]
private static extern int GetSystemMetrics (int nIndex);
private static Boolean QueryTabletMode()
{
int state = GetSystemMetrics(SM_CONVERTIBLESLATEMODE);
return (state == 0) && isTabletPC;
}
}
करता बदल गया था समय-समय पर इस जांच करने के लिए आवश्यकता हो सकती है पीसी टैबलेट मोड में कीबोर्ड का पता लगाता है और कीबोर्ड संलग्न है? (मैं इसे जांच नहीं सकता।) यदि ऐसा है, तो आप कीबोर्ड की उपस्थिति के आधार पर तर्क जोड़ने में सक्षम होना चाहिए। –
पीसी टैबलेट मोड में कीबोर्ड का पता लगाता है। मैं यह पता लगाने की तलाश नहीं कर रहा हूं कि कोई कीबोर्ड मौजूद है या नहीं, मैं विंडोज़ "टैबलेट" थीम के साथ अपने एप्लिकेशन के विषय से मेल खाता हूं। आप बड़े बटन, आदि जानते हैं। कीबोर्ड के अस्तित्व पर इसका कोई असर नहीं है। –
क्या आपने जो जवाब दिया है उसके प्रश्न में पोस्ट किए गए "समाधान" को आजमाया है? की – Brunner