是否有可能让我的c#wpf程序知道用户是否有触摸屏?

时间:2011-04-15 07:19:01

标签: c# wpf touch touchscreen login-control

我有一个登录应用程序,它有一个人们只有在有触摸屏时才能使用的滑动系统。他们可以通过刷他们的个人模式滑动代码来登录。

如果用户有触摸屏,是否可以签入C#或WPF?即使他当时没有使用触控功能?

3 个答案:

答案 0 :(得分:19)

在C#代码中,通过在System.Windows.Input中使用PresentationCore命名空间来查明是否存在触摸屏(不检查是否是单个或多点触控设备)。

    public bool HasTouchInput()
    {
        foreach (TabletDevice tabletDevice in Tablet.TabletDevices)
        {
            //Only detect if it is a touch Screen not how many touches (i.e. Single touch or Multi-touch)
            if(tabletDevice.Type == TabletDeviceType.Touch)
                return true;
        }

        return false;
    }

答案 1 :(得分:1)

我认为托管代码中没有任何可用内容,但您可以在Win32_DesktopMonitor上使用P / Invoke。有关详细信息,请参阅msdn

我发现这篇博文可能会有所帮助,即使它位于Windows CE上:http://blog.nerdbank.net/2006/10/platform-detection-iii-how-to-detect.html

答案 2 :(得分:0)

Windows XP Tablet PC Edition中有IInkTablet2 COM接口或非WPF应用程序的托管包装Microsoft.Ink.Tablet类。但是大多数触摸屏驱动程序都是“鼠标”驱动程序,无法以这种方式检测到。