【问题标题】:Windows Phone 7 UIElement manipulationWindows Phone 7 UIElement 操作
【发布时间】:2012-02-13 00:03:30
【问题描述】:
我想完成以下场景。我有一个带有 CompositeTransform 的 UIElement,我想在屏幕上拖动它。另外,当我点击它时,我希望它旋转 90 度。所以,
我在处理
轻敲
操作开始
ManipulationDelta -> 我正在通过 e.DeltaManipulation.Translation.X 和 Y 增加 Translate.X 和 Y
操作完成
当 CompositeTransform.Rotation 为 0 时,一切正常。但是,当它 > 0(例如 90)时,e.DeltaManipulation.Translation 给我相对于对象旋转的值!所以,我试图移动屏幕右侧的 UIElement,但它向上移动了……
有什么提示吗?
【问题讨论】:
标签:
windows-phone-7
rotation
uielement
【解决方案1】:
我将位置值(顶部和左侧)绑定到画布,旋转值绑定到旋转变换角度。在我的 ManipulationDelta 事件中,我使用了这两行代码:
piece.Left = piece.Left + (Math.Cos(piece.Radians)*e.DeltaManipulation.Translation.X) - (Math.Sin(piece.Radians) * e.DeltaManipulation.Translation.Y);
piece.Top = piece.Top + (Math.Cos(piece.Radians) * e.DeltaManipulation.Translation.Y) + (Math.Sin(piece.Radians) * e.DeltaManipulation.Translation.X);
我应该提一下,我一次只能旋转 90 度。我认为如果您有任意角度,这将行不通。但是,如果您正在做任意角度,正弦和余弦函数将让您通过一些编辑到达那里。
另外,你说你想要一个提示......