none
在WP8.1silverlight中,如何让button控件变得半透明,但是button控件上的文字或图片保持不透明? RRS feed

  • 问题

  • 在WP8.1silverlight中,如何让button控件变得半透明,但是button控件上的文字或图片保持不透明?我尝试调整button控件的opacity,但是控件上的文字图片都随着一起变为半透明。请问如何做?
    2015年1月14日 7:01

答案

  • 你好。

    可以换一下思路,不去直接设置Button的Opacity,而是去修改Button的ContentTemplate或者Template。

    我以ContentTemplate为例:

    我在Grid里设置Button的文字,同时给它加上一个半透明的Border作为背景色,这样就实现了背景半透明,文字不透明的效果。

    下面代码是在WPF中实现的,你可以自己调整尺寸,字号以适应WP屏幕显示。

            <Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="40" FontSize="20" Background="Transparent">
                <Button.ContentTemplate>
                    <DataTemplate>
                        <Grid>
                            <Border Opacity="0.4" Background="Green"/>
                            <TextBlock Text="Test Opacity"/>
                        </Grid>
                    </DataTemplate>
                </Button.ContentTemplate>
            </Button>


    希望我的答案能帮助更多的人。

    2015年1月14日 7:24

全部回复

  • 你好。

    可以换一下思路,不去直接设置Button的Opacity,而是去修改Button的ContentTemplate或者Template。

    我以ContentTemplate为例:

    我在Grid里设置Button的文字,同时给它加上一个半透明的Border作为背景色,这样就实现了背景半透明,文字不透明的效果。

    下面代码是在WPF中实现的,你可以自己调整尺寸,字号以适应WP屏幕显示。

            <Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="40" FontSize="20" Background="Transparent">
                <Button.ContentTemplate>
                    <DataTemplate>
                        <Grid>
                            <Border Opacity="0.4" Background="Green"/>
                            <TextBlock Text="Test Opacity"/>
                        </Grid>
                    </DataTemplate>
                </Button.ContentTemplate>
            </Button>


    希望我的答案能帮助更多的人。

    2015年1月14日 7:24
  • ok,通过调整border的尺寸可以达到我要的效果,非常感谢!!!!!
    2015年1月14日 8:27