【发布时间】:2016-01-03 03:15:11
【问题描述】:
当它们被禁用时,我需要更改容器(网格/停靠面板/等)中控件的不透明度,以使它们看起来更亮或更暗。
当容器被禁用时,嵌套控件似乎降低到大约 0.5(比如说)不透明度。如果我在禁用时尝试调整容器的不透明度,无论我将其设置为什么,最大值始终限制为 0.5。分配不透明度的方法也无关紧要,我直接在代码和样式/触发器中尝试过。
我猜这是通过使用矩形(或其他窗口类型)遮罩并设置不透明度在容器中实现的。然后,from MSDN it says:
不透明度从元素树向下的父元素应用到 子元素,但嵌套不透明度设置的可见效果 未在单个子元素的属性值中指示。 例如,如果一个列表具有 50% (0.5) 的不透明度和它的列表之一 items 有自己的不透明度设置为 20% (0.2),即净可见不透明度 因为该列表项将呈现为 10% (0.1),但 列表项 Opacity 属性的属性值仍为 0.2 查询时。
所以我明白为什么我会看到这种行为,我只是希望有一种方法可以覆盖它?
如果没有,我能想到的唯一选择是用我自己的矩形滚动我自己的禁用行为,然后我可以设置我需要的不透明度级别。对我来说这听起来像是不必要的麻烦,除非我错过了什么?
请注意,我是 interested in this question,但以这种方式从代码中设置不透明度并没有什么不同,禁用的控件似乎不受影响。
【问题讨论】:
-
问得很好的问题:)
-
@vnikhil 真的吗?对我来说这有点冗长。只有来自 MSDN 的引用文本和更多解释就足够了。它不需要如此冗长和冗长。事实上,我只是通过阅读引用和查看问题标题来理解问题。
-
另一方面,cmets 关于这个问题的冗长但实际上并没有解决它,这很好。现在我希望我有一个有用的答案。
标签: c# wpf wpf-controls opacity