繁体   English   中英

如何防止图像恢复到原始位置?

[英]How do I prevent my image from returning to its original position?

我有一个平台电话应用程序的开始,当时我尝试结合自己正在上的课来教自己C#。我有三个游戏按钮,向左,向右和跳转。 这些按钮全部执行其预期的功能,但是由于某些原因,每当我单击按钮时,图像(播放器又称为“卡通”)都会跳回到其原始位置。 第二次单击同一按钮时,操作正确执行,但是当我切换按钮时,它又跳了一次。

最后要说明的是,左,右是一个例外,一旦按下任一按钮并返回原点跳转,则左和右都将正常工作。

希望代码足够容易阅读。 我觉得应该是一个简单的解决方法,但是我是新手。

namespace App1
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        //should probably be Event Args not routed
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Toon.Margin = new Thickness(62, Toon.Margin.Top - 15, 0,0);
            Toon.Margin = new Thickness(Toon.Margin.Left, Toon.Margin.Top, Toon.Margin.Right, Toon.Margin.Bottom);
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Toon.Margin = new Thickness(Toon.Margin.Left + 15, 102, 0, 0);
            Toon.Margin = new Thickness(Toon.Margin.Left, Toon.Margin.Top, Toon.Margin.Right, Toon.Margin.Bottom);
        }

        //moving left
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            (Toon.Margin.Left,Toon.Margin.Top,Toon.Margin.Right,Toon.Margin.Bottom);
            Toon.Margin = new Thickness(Toon.Margin.Left - 15, 102, 0, 0);
            Toon.Margin = new Thickness(Toon.Margin.Left, Toon.Margin.Top, Toon.Margin.Right, Toon.Margin.Bottom);
        }
    }
}

代码的问题是,您要混合绝对值和相对于先前位置的值。 因此,例如,如果您想将图像向右移动,只需更改该值并使所有其他值保持不变:

Toon.Margin = new Thickness(Toon.Margin.Left + 15, Toon.Margin.Top, Toon.Margin.Right, Toon.Margin.Bottom);

Toon.Margin.Top,Toon.Margin.Left等值是图像当前分配的值。 这也意味着以下行什么都不做:

Toon.Margin = new Thickness(Toon.Margin.Left, Toon.Margin.Top, Toon.Margin.Right, Toon.Margin.Bottom);

它只是分配它已经具有的图像值。 如果要创建“跳转”功能,则可以使用所有绝对值将图像设置到特定位置,如下所示:

Toon.Margin = new Thickness(0,0,0,0)    // replace the 0s with numbers you like

最后一点,您不应该将函数的名称命名为Button_Click_1等等,因为这样很难弄清楚该函数的作用。 而是将其命名为Button_Click_Move_Right

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM