0我正在开发某种按钮(实际上是图像),当它们被禁用(不是通过enabled = false)时,它们具有不透明度值为0.1。因此,通过在点击事件中进行不透明度的简单检查,我可以知道它是启用还是禁用。
但是,当我为不透明度设置禁用值(0.1)并调试并检查执行时,我有一个奇怪的行为:不透明度值不完全是0.1,而是稍大一些。因此,当我检查if ( btnLocateMeControl.Opacity == 0.1 )
时总是返回false,因为它不准确。
以下是调试时的屏幕截图:
知道为什么会发生吗?是否可以检查不透明度是否在0.09-0.11之间的任何优雅解决方案?
谢谢!
答案 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);
}