![](/img/trans.png)
[英]How do I prevent C# from prefixing the temporary path to my original path?
[英]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.