Значения непрозрачности не точны - PullRequest
0 голосов
/ 19 декабря 2018

0 Я разрабатываю какие-то кнопки (на самом деле это изображения), которые, когда они отключены (не с помощью enabled = false), имеют значение непрозрачности 0,1.Итак, с помощью простой проверки непрозрачности в событии касания я могу узнать, включено ли оно или нет.

Но, когда я устанавливаю отключенное значение для непрозрачности (0,1), отлаживаю и проверяю выполнение, у меня странное поведение: значения непрозрачности не совсем 0,1, но немного больше.Итак, когда я проверяю, if ( btnLocateMeControl.Opacity == 0.1 ) всегда возвращает false, потому что это не точно.

Вот снимок экрана при отладке:

enter image description here

Есть идеи, почему это происходит?Любое элегантное решение, которое заключается в том, чтобы не проверять, находится ли непрозрачность между 0,09 - 0,11?

Спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Это моё «решение» проблемы.Не самый элегантный, но он работает и его легко реализовать.

//if (btnGPSControl.Opacity == 0.1) return; // Old problematic part
if (!IsEnabledControl(btnGPSControl)) return;  // New code

И функция проверки значений непрозрачности:

    private bool IsEnabledControl(Image btnControl)
    {
        return !(0.099 < btnControl.Opacity && btnControl.Opacity < 0.101);
    }
...