Ich verwende den folgenden Code, um festzustellen, ob sich ein Benutzer im Tablet-Modus befindet oder nicht. Ich bin auf einem Surface Pro und wenn ich die Tastatur entkoppeln und den PC zu einem Tablet machen, gibt IsTabletMode
True zurück (was es sollte.) Wenn ich die "Tablet Mode" -Taste ohne Entkopplung des Bildschirms verwende, gibt IsTabletMode
immer false zurück. Hat jemand das erlebt und wie kann ich es lösen?So erkennen Sie den Tablettmodus
/*
* 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;
}
}
Does gedreht wurde erkennt der PC die Tastatur im Tablet-Modus und die Tastatur ist angeschlossen? (Ich kann das nicht überprüfen.) Wenn dies der Fall ist, sollten Sie in der Lage sein, Logik basierend auf dem Vorhandensein einer Tastatur hinzuzufügen. –
Der PC erkennt die Tastatur im Tablet-Modus. Ich suche nicht, ob eine Tastatur existiert oder nicht, ich suche das Thema meiner Anwendung mit dem Windows "Tablet" Thema. Sie kennen größere Tasten usw. Das Vorhandensein einer Tastatur hat damit nichts zu tun. –
Haben Sie versucht, die "Lösung" in der Frage der Antwort, die Sie verknüpft haben, zu veröffentlichen? – Brunner