我正在使用以下代码来检测用户是否处于平板电脑模式。我于表面的Pro和我分离键盘,使PC变成一个平板电脑,IsTabletMode
真(这是它应该)当我用“平板模式”按钮而不去耦屏幕,IsTabletMode
始终返回false。有没有人遇到过这个问题,我该如何解决?如何检测平板电脑模式
/*
* 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;
}
}
不PC在Tablet模式下检测键盘并连接键盘? (我不能检查这个。)如果是这样,你应该能够添加基于键盘存在的逻辑。 –
在平板电脑模式下,PC确实检测到键盘。我不想检测键盘是否存在,我正在寻找与Windows“平板电脑”主题相匹配的应用程序主题。你知道更大的按钮等。键盘的存在对此没有影响。 –
您是否尝试过在所链接的答案问题中发布的“解决方案”? – Brunner