WPF窗体或控件的背景透明效果

现在有一个需求,就是实现类似背景透明内容不透明的效果,如果直接使用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就可以了

《WPF窗体或控件的背景透明效果》
效果如上左右两边对比(为了看的清没有设置透明度最小值)..
附:其中ARGB颜色中A代表alpha值即(透明度)通道
透明度分为256阶(0-255),用16进制表示为(00-ff)。完全透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

  1. 周松松博客 说道:

    喜欢透明,嘿嘿