none
布局容器和列表类控件如何设置透明度?但不影响子控件 RRS feed

  • 问题

  • 我要对grid布局,WrapPanel布局,listview和listbox等这些布局容器或列表类控件的背景设置透明度,它们的背景有没有透明度属性?

    能看到这些控件或布局覆盖的部分,但是它们的子控件的透明度不能受父控件的背景透明度的更改而被影响。


    2016年12月21日 12:20

答案

  • <ListView>
                        <ListView.Background>
                            <!--<ImageBrush ImageSource="Image/win10.jpg" Opacity="0.5"/>-->
                            <SolidColorBrush Color="Blue" Opacity="0.5"/>
                        </ListView.Background>

    </ListView>

    2016年12月22日 2:19
  • 就像umi-aoi建议的那样,可以使用SolidColorBrush设置父控件背景颜色和透明度。这样设置以后,子控件的背景颜色和透明度仍然可以另外进行设置。下面的demo中StackPanel作为父控件,两个Grid作为子控件。

        <WrapPanel Orientation="Vertical">
            <WrapPanel.Background>
                <SolidColorBrush Color="Yellow" Opacity="0.3"/>
            </WrapPanel.Background>
            <Grid Height="100" Width="200" Opacity="1" Background="Red">
            </Grid>
            <Grid Height="100" Width="200" Opacity="1" Background="AliceBlue">
            </Grid>
        </WrapPanel>

    效果图:

    2016年12月22日 3:38

全部回复

  • <ListView>
                        <ListView.Background>
                            <!--<ImageBrush ImageSource="Image/win10.jpg" Opacity="0.5"/>-->
                            <SolidColorBrush Color="Blue" Opacity="0.5"/>
                        </ListView.Background>

    </ListView>

    2016年12月22日 2:19
  • 就像umi-aoi建议的那样,可以使用SolidColorBrush设置父控件背景颜色和透明度。这样设置以后,子控件的背景颜色和透明度仍然可以另外进行设置。下面的demo中StackPanel作为父控件,两个Grid作为子控件。

        <WrapPanel Orientation="Vertical">
            <WrapPanel.Background>
                <SolidColorBrush Color="Yellow" Opacity="0.3"/>
            </WrapPanel.Background>
            <Grid Height="100" Width="200" Opacity="1" Background="Red">
            </Grid>
            <Grid Height="100" Width="200" Opacity="1" Background="AliceBlue">
            </Grid>
        </WrapPanel>

    效果图:

    2016年12月22日 3:38