我还没有找到一种方法来确定屏幕上手指的压力。获取StylusPoints并使用这些点的PressureFactor
属性似乎是最明显的:
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var point = e.StylusDevice.GetStylusPoints(Image).Last();
Debug.WriteLine(point.PressureFactor);
但是PressureFactor始终是0.5,从这个http://msdn.microsoft.com/en-us/library/bb979901(v=vs.95).aspx中可以看出,设备类型必须是"Stylus“才能工作。
我还查看了http://code.msdn.microsoft.com/Multi-Touch-Drawing-744a0b48,它使用Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
捕获触摸事件。然后,事件处理程序可以访问TouchPoint
,但它们没有Pressure
属性。
我怎么才能找到触觉压力?
发布于 2013-09-20 06:08:05
触控只支持触控笔,如您在来自MSDN的示例代码中所看到的
String queryPointer(PointerPoint ptrPt)
{
String details = "";
switch (ptrPt.PointerDevice.PointerDeviceType)
{
case Windows.Devices.Input.PointerDeviceType.Mouse:
details += "\nPointer type: mouse";
break;
case Windows.Devices.Input.PointerDeviceType.Pen:
details += "\nPointer type: pen";
if (ptrPt.IsInContact)
{
details += "\nPressure: " + ptrPt.Properties.Pressure;
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
details += "\nBarrel button pressed: " + ptrPt.Properties.IsBarrelButtonPressed;
}
break;
case Windows.Devices.Input.PointerDeviceType.Touch:
details += "\nPointer type: touch";
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
break;
default:
details += "\nPointer type: n/a";
break;
}
....
https://stackoverflow.com/questions/18909419
复制相似问题