2013-09-20 3 views
1

Я не смог найти способ определить давление пальца на экране. Получение StylusPoints и используя PressureFactor свойство этих точек представляется наиболее очевидным:Определить сенсорное давление на Windows Phone 8

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.

Как найти сенсорное давление?

ответ

1

Прикосновение поддерживается только для стилуса, как вы можете увидеть в example code from the 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; 
    } 

.... 
+0

Спасибо, но статьи вы ссылаетесь имеет отношение к Windows, 8 магазин приложений, а не Windows Phone 8. HTTP: // MSDN .microsoft.com/en-us/library/windows/apps/br242063.aspx заявляет, что он не реализован для Windows Phone 8. –

+0

@JasonSteele - в нижней части статьи говорится: «Минимальный поддерживаемый телефон: Windows Phone 8 ' –

+0

Извинения, так оно и есть. Давление, доступное только из стилуса, также подтверждается моей первой попыткой. Я надеюсь, что некоторые альтернативные Touch API (похоже, их много) могут поддержать его. Если нет, то, возможно, прокси для давления, такого как область пальца? –

Смежные вопросы