我有一个平台手机应用程序的开头,因为我尝试自学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);
}
}
}
答案 0 :(得分:0)
您的代码存在的问题是您将绝对值与相对于之前位置的值进行混合。因此,例如,如果您想将图片向右移动,只需更改该值并将所有其他值保持不变:
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
。