C#复合变换矩形

时间:2015-08-28 09:23:04

标签: c# xaml

我试图在用户拖动它时移动一个矩形。我的代码是:

 private void Grid_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
    {
         Rectangle r = (sender) as Rectangle;
         r.RenderTransform = new CompositeTransform { TranslateX = e.DeltaManipulation.Translation.X };

    }

上面的代码不起作用,因为它应该是这样的:

r.RenderTransform = new CompositeTransform { TranslateX += e.DeltaManipulation.Translation.X };

" +"标志使它工作,但上面的语法给出一个错误。当我使用xaml添加渲染变换时,它工作正常,但我想在c#中进行。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

只需将评论中提出的解决方案纳入答案:

他们这样做的方法是在每次调用事件处理程序时分配 new CompositeTransform。这不是你想要的。您想要操纵现有的CompositeTransform。

为了实现这一目标,您必须在事件处理程序之外手动分配CompositeTransform一次

r.RenderTransform = new CompositeTransform();

在此之后,您可以在事件处理程序中使用以下内容:

((CompositeTransform)r.RenderTransform).TranslateX += e.DeltaManipulation.Translation.X;