【问题标题】:Getting the direction of manipulation delta获取操作增量的方向
【发布时间】:2014-09-30 23:44:22
【问题描述】:

在我的项目中,可以使用增量操作在屏幕上移动对象(矩形...),如下所示:

rectangle.TranslateX += e.Delta.Translation.X;
rectangle.TranslateY += e.Delta.Translation.Y;   

当对象被移动时,如何获得方向(右、左、上、下)? 我需要在移动对象时获取此信息。

【问题讨论】:

    标签: c# windows-phone-8 direction delta


    【解决方案1】:

    什么是e.Delta.Translation.Xe.Delta.Translation.Y?你不是说...


    e.DeltaManipulation.Translation.X
    e.DeltaManipulation.Translation.Y

    rectangle.TranslateXrectangle.TranslateY 到底是什么?

    这些东西不存在。快速搜索一下你想做的事情会向你展示很多工作示例。

    例如,使用 Touch 在屏幕上移动图像


    <Image x:Name="myImage" Source="/Assets/ApplicationIcon.png" Stretch="None" ManipulationDelta="myImage_ManipulationDelta">
        <Image.RenderTransform>
            <CompositeTransform></CompositeTransform>
        </Image.RenderTransform>
    </Image>
    

    private void myImage_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
    {
        Image i = sender as Image;           
        CompositeTransform ct;
        if (i.RenderTransform is CompositeTransform)
        {
            ct = (CompositeTransform) i.RenderTransform;
            ct.TranslateX += e.DeltaManipulation.Translation.X;
            ct.TranslateY += e.DeltaManipulation.Translation.Y;
        }           
    }
    

    【讨论】:

    • 感谢您的回复,但我想我得到了答案。获取对象的起点(在本例中为矩形),当完成对象移动时,只需获取终点并减去初始值,如果我得到一个负值,则留给 x,如果你保持正值,则为正确,类似地是的。我用的是Windows Phone 8.1平台,关于谷歌的不多。
    • Windows Phone 不支持 e.DeltaManipulation.Translation.x; e.DeltaManipulation.Translation.Y;
    • @AlessonDanilo WP8 确实支持 e.DeltaManipulation,您的问题表明您正在使用 WP8(检查您的标签)。如果您使用的是 8.1,请正确标记您的问题,否则明确说明您的平台。我们无法读懂你的想法。
    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多