是否可以在 UWP 中将 ImageBrush 与 LinearGradientBrush 结合使用

Is it possible to combine an ImageBrush with a LinearGradientBrush in UWP

我正在构建一个 Planning Poker UWP 应用程序来获得乐趣。我可以使用 ImageBrush 或 LinearGradientBrush 为扑克牌设置样式(目前通过背景 属性 实现为按钮),没有任何问题,但显然我只能将一种类型的画笔设置为 属性。

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

你会怎么做?

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

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

I'd like to style the card with an image, which then had another brush (e.g. a LinearGradientBrush) over-layed on top, this other brush would naturally have some degree of transparency so that parts of the image could show through.

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

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

结果: