【问题标题】:Textbox on canvas drag direction changed after rotated旋转后画布上的文本框拖动方向更改
【发布时间】:2014-10-22 08:36:05
【问题描述】:

我在画布上有一个文本块控件,可以正确地水平拖动到右侧,如第一张和第二张图片所示。

然后在对其 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;
    }

【问题讨论】:

    标签: c# canvas rotation windows-phone transform


    【解决方案1】:

    对于那些在同一条船上的人,我设法通过从 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 2012-07-18
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多