UIElement.ManipulationDelta 事件  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当输入设备在操作期间更改位置时发生。
public:
 event EventHandler<System::Windows::Input::ManipulationDeltaEventArgs ^> ^ ManipulationDelta;
	public event EventHandler<System.Windows.Input.ManipulationDeltaEventArgs> ManipulationDelta;
	member this.ManipulationDelta : EventHandler<System.Windows.Input.ManipulationDeltaEventArgs> 
	Public Custom Event ManipulationDelta As EventHandler(Of ManipulationDeltaEventArgs) 
	事件类型
示例
以下示例演示事件的事件处理程序 ManipulationDelta 。 该示例使用 DeltaManipulation 属性移动、调整大小和旋转 Rectangle。 该示例还检查事件是否 ManipulationDelta 在惯性期间发生,以及矩形是否触摸窗口的边缘。 如果这些情况为 true,应用程序将停止操作,以防止矩形离开应用程序的可见区域。 此示例是 演练:创建第一个触摸应用程序中较大示例的一部分。
void Window_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    
    // Get the Rectangle and its RenderTransform matrix.
    Rectangle rectToMove = e.OriginalSource as Rectangle;
    Matrix rectsMatrix = ((MatrixTransform)rectToMove.RenderTransform).Matrix;
    // Rotate the Rectangle.
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation, 
                         e.ManipulationOrigin.X, 
                         e.ManipulationOrigin.Y);
    // Resize the Rectangle.  Keep it square 
    // so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X, 
                        e.DeltaManipulation.Scale.X, 
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y);
    // Move the Rectangle.
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y);
    // Apply the changes to the Rectangle.
    rectToMove.RenderTransform = new MatrixTransform(rectsMatrix);
    Rect containingRect =
        new Rect(((FrameworkElement)e.ManipulationContainer).RenderSize);
    Rect shapeBounds =
        rectToMove.RenderTransform.TransformBounds(
            new Rect(rectToMove.RenderSize));
    // Check if the rectangle is completely in the window.
    // If it is not and intertia is occuring, stop the manipulation.
    if (e.IsInertial && !containingRect.Contains(shapeBounds))
    {
        e.Complete();
    }
    e.Handled = true;
}
Private Sub Window_ManipulationDelta(ByVal sender As Object, ByVal e As ManipulationDeltaEventArgs)
    ' Get the Rectangle and its RenderTransform matrix.
    Dim rectToMove As Rectangle = e.OriginalSource
    Dim rectTransform As MatrixTransform = rectToMove.RenderTransform
    Dim rectsMatrix As Matrix = rectTransform.Matrix
    ' Rotate the shape
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation,
                         e.ManipulationOrigin.X,
                         e.ManipulationOrigin.Y)
    ' Resize the Rectangle. Keep it square 
    ' so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X,
                        e.DeltaManipulation.Scale.X,
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y)
    'move the center
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y)
    ' Apply the changes to the Rectangle.
    rectTransform = New MatrixTransform(rectsMatrix)
    rectToMove.RenderTransform = rectTransform
    Dim container As FrameworkElement = e.ManipulationContainer
    Dim containingRect As New Rect(container.RenderSize)
    Dim shapeBounds As Rect = rectTransform.TransformBounds(
                                New Rect(rectToMove.RenderSize))
    ' Check if the rectangle is completely in the window.
    ' If it is not and intertia is occuring, stop the manipulation.
    If e.IsInertial AndAlso Not containingRect.Contains(shapeBounds) Then
        e.Complete()
    End If
    e.Handled = True
End Sub
	注解
当用户 ManipulationDelta 在操作期间将手指拖过屏幕时,以及发生惯性时,将多次发生该事件。 可以使用 IsInertial 属性检查事件是否在惯性期间发生。
事件发生时,on with ManipulationDelta 事件发生的元素不会受到任何影响。 必须为要操作的元素提供逻辑。 CumulativeManipulation和 DeltaManipulation 属性的类型为 ManipulationDelta,包含有关操作位置如何更改和解释为移动、调整大小或旋转对象的数据。 将此信息应用于要操作的元素。
有关操作的详细信息,请参阅 输入概述。 有关响应操作的应用程序的示例,请参阅 演练:创建第一个触控应用程序。
路由事件信息
| 标识符字段 | ManipulationDeltaEvent | 
| 路由策略 | 鼓 泡 | 
| 委托 | EventHandler<TEventArgs>类型ManipulationDeltaEventArgs。 |