Я использую следующий код, чтобы определить, находится ли пользователь в режиме планшета или нет. Я нахожусь на Surface Pro, и когда я отключаю клавиатуру и превращаю ПК в планшет, IsTabletMode
возвращает true (что ему нужно.) Когда я использую кнопку "Режим планшета" без развязки экрана, IsTabletMode
всегда возвращает false. Кто-нибудь испытал это и как я могу его решить?
/*
* Credit to Cheese Lover
* Retrieved From: http://stackoverflow.com/info/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;
}
}