不透明度值不准确

时间:2018-12-19 07:33:05

标签: c# uwp opacity

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 :(得分:0)

这是我针对该问题的“解决方案”。不是最优雅的,但是它可以工作并且很容易实现。

//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);
    }