是否可以在 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>
结果:
我正在构建一个 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>
结果: