Semi-transparent custom layout panel

半腔热情 提交于 2019-12-18 09:22:58

问题


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 };

回答1:


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




回答2:


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>


来源:https://stackoverflow.com/questions/3008440/semi-transparent-custom-layout-panel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!