我在画布上有一个文本块控件,可以正确地水平向右拖动,如第一张和第二张图片所示。
然后在我对其CompositeTransform应用90度旋转角度后,向右拖动文本块实际上将其垂直向顶部移动,如第三和第四图像所示。我错过了什么?
public CompositeTransform CurrentTransform = new CompositeTransform();
.....
TextBlock.RenderTransform = CurrentTransform;
....
private double angle;
public double Angle
{
get
{
return angle;
}
set
{
if (angle != value)
{
angle = value;
CurrentTransform.CenterX = 0;
CurrentTransform.CenterY = 0;
CurrentTransform.Rotation = angle;
}
}
}
文本框的移动在
中处理private void CanvasText_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
CurrentTransform.TranslateX += e.DeltaManipulation.Translation.X;
CurrentTransform.TranslateY += e.DeltaManipulation.Translation.Y;
}
答案 0 :(得分:0)
对于那些在同一条船上的人,我设法通过从Windows Phone工具包附加外部手势监听器而不是使用内置的CanvasText_ManipulationDelta
事件来解决这个问题。即使在旋转后,文本框拖动也能正常工作。
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Image x:Name="ImageOriginal"
Source="{Binding WbPreview, Mode=TwoWay}"
Stretch="Uniform"/>
<Grid x:Name="GridDraw"
Tap="GridDraw_Tap"
Background="Transparent"/>
<Canvas x:Name="CanvasText">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="GestureListener_Tap"
DragDelta="GestureListener_DragDelta"/>
</toolkit:GestureService.GestureListener>
</Canvas>
</Grid>