Semi-transparent custom layout panel

2020-02-14 19:43发布

I have built a semi-transparent custom layout panel in WPF by setting the Opacity value of the panel to 0.5. Everything works as expected, except that the children of the panel are also semi-transparent!

What do I need to change to have the children of the panel rendered without transparency?

Here's the relevant code:

public class DialogLayoutPanelControl : Panel
{
    public DialogLayoutPanelControl() : base()
    {
        Background = Brushes.LightGray;
        Opacity = 0.5;
    }
 }

Solution (by Anvaka):

    Background = new SolidColorBrush(Colors.LightGray) { Opacity = 0.5 };

2条回答
趁早两清
2楼-- · 2020-02-14 20:19

Change the opacity of the brush, rather than control itself...

查看更多
劳资没心,怎么记你
3楼-- · 2020-02-14 20:34

Thank you very much Anvaka, you helped me also. In my case, I did it from XAML (from style):

   <Setter Property="Background">
        <Setter.Value>
            <SolidColorBrush Color="Black" Opacity="0.3"/>
        </Setter.Value>
    </Setter>
查看更多
登录 后发表回答