Почему нажатая кнопка не переводит контейнер? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь использовать кнопку для перевода контейнера. В течение некоторого времени после того, как контейнер поднимается, а затем опускается, когда нажатие на кнопку в третий раз ничего не происходит. Этот цикл повторяется, поэтому каждый третий щелчок не работает должным образом.

Наверху в классе, который я имею это объявлено

double windowHeight;
double historyContainerHideTranslation;
double historyContainerShowTranslation;

В конструкторе у меня есть

windowHeight = DeviceDisplay.MainDisplayInfo.Height;

historyContainerHideTranslation = windowHeight * .07;
historyContainerShowTranslation = windowHeight * -.11;

HistoryContainer.TranslationY = historyContainerHideTranslation;

И метод ...

void HistoryBtnHandler(object sender, EventArgs e)
{
    Console.WriteLine("  before if height =>  " +   HistoryContainer.TranslationY);


    if (HistoryContainer.TranslationY == historyContainerHideTranslation)
    {
        HistoryContainer.TranslateTo(0, historyContainerShowTranslation, 250, Easing.SinOut);
        HistoryContainer.TranslationY = historyContainerShowTranslation;

        Console.WriteLine("if stmnt height +>  " + HistoryContainer.TranslationY);

        }
        else
        {
            HistoryContainer.TranslateTo(0, historyContainerHideTranslation, 250, Easing.SinIn);

            HistoryContainer.TranslationY = historyContainerHideTranslation;
            Console.WriteLine("else stmnt height +>  " + HistoryContainer.TranslationY);
        }

        Console.WriteLine("after stmts height +>  " + HistoryContainer.TranslationY);

}

1 Ответ

0 голосов
/ 01 мая 2020

При сравнении реляционных чисел округлите каждое из них, используя Math.Round (), чтобы указать, сколько цифр после десятичной точки вы хотите получить. В этом случае, когда числа округляются до одного ди git, они будут одинаковыми.

...