是否可以在UWP中组合ImageBrush和LinearGradientBrush

时间:2016-06-02 21:00:00

标签: c#-4.0 background transparency uwp uwp-xaml

我正在建立一个规划扑克UWP应用程序以获得乐趣。我可以使用ImageBrush或LinearGradientBrush设置扑克牌(目前通过Background属性实现),没有任何问题,但显然我只能为该属性设置一种类型的画笔。

我想用一张图片为卡片添加样式,然后将另一个画笔(例如一个LinearGradientBrush)叠加在上面,这另一个画笔自然会有一定程度的透明度,这样图像的某些部分就可以了透过。

你会怎么做?

对于用户看到的实际扑克牌 - 我可以使用不同的控件类型(例如组合了多个控件的UserControl,每个都有自己的背景)轻松地重新实现它,但是还有其他使用实例(即显示可用样式的列表),所以我想在查看编写自定义UserControl之前看看是否有另一种方法。

1 个答案:

答案 0 :(得分:3)

Button是一个内容控件,您可以将其他xaml控件放在按钮的内容中,并为它们设置LinearGradientBrush。例如,您可以为按钮的背景属性设置ImageBrush,同时为矩形内联设置LinearGradientBrush

  

我想用一张图片来设置卡片的样式,然后将另一个画笔(例如一个LinearGradientBrush)叠加在上面,这另一个画笔自然会有一定程度的透明度,以便图像的某些部分可以通过

为了满足您的要求,我编写了一个代码示例如下:

<Button x:Name="BtnPoker" Padding="0">
    <Rectangle Width="200"
               Height="300"
               Margin="0"
               Opacity="0.4">
        <Rectangle.Fill>
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                <GradientStop Offset="0.0" Color="Yellow" />
                <GradientStop Offset="0.25" Color="Red" />
                <GradientStop Offset="0.75" Color="Blue" />
                <GradientStop Offset="1.0" Color="LimeGreen" />
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
    <Button.Background>
        <ImageBrush ImageSource="Assets\caffe.jpg" />
    </Button.Background>
</Button>

结果:

enter image description here