现在有一个需求,就是实现类似背景透明内容不透明的效果,如果直接使用Opacity来做,那么该窗体或控件下的所有子控件都会变成透明的..
1.如果是窗体,XAML文件中首先设置 WindowStyle="None"
和 AllowsTransparency="True"
然后 Background="#01FFFFFF"
2.控件就直接设置背景色
Background="#01FFFFFF"
后台.cs文件代码实现:
gridVLCMouse.Background = new SolidColorBrush(Color.FromArgb(1,0,0,0));
3.使用可视化设计器中RGBA中的A来控制透明度,最低只能为0.4,不然背景就会变成完全透明,这时事件就会透下去了
当然不过是Opacity值还是 a通道值如果这种为0,虽然实现了全透明,但是比如鼠标事件就无法捕获会穿透到下一层的控件去..Opacity=0.01或a值等于1就可以了
效果如上左右两边对比(为了看的清没有设置透明度最小值)..
附:其中ARGB颜色中A代表alpha值即(透明度)通道
透明度分为256阶(0-255),用16进制表示为(00-ff)。完全透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。
喜欢透明,嘿嘿