簡體   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