我正在建立一个规划扑克UWP应用程序以获得乐趣。我可以使用ImageBrush或LinearGradientBrush设置扑克牌(目前通过Background属性实现),没有任何问题,但显然我只能为该属性设置一种类型的画笔。
我想用一张图片为卡片添加样式,然后将另一个画笔(例如一个LinearGradientBrush)叠加在上面,这另一个画笔自然会有一定程度的透明度,这样图像的某些部分就可以了透过。
你会怎么做?
对于用户看到的实际扑克牌 - 我可以使用不同的控件类型(例如组合了多个控件的UserControl,每个都有自己的背景)轻松地重新实现它,但是还有其他使用实例(即显示可用样式的列表),所以我想在查看编写自定义UserControl之前看看是否有另一种方法。
答案 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>
结果: