【问题标题】:Is it possible to combine an ImageBrush with a LinearGradientBrush in UWP是否可以在 UWP 中将 ImageBrush 与 LinearGradientBrush 结合使用
【发布时间】:2016-06-02 21:00:00
【问题描述】:

我正在构建一个 Planning Poker UWP 应用程序来取乐。我可以使用 ImageBrush 或 LinearGradientBrush 设置扑克牌的样式(目前通过 Background 属性实现为按钮),但显然我只能为该属性设置一种类型的画笔。

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

你会怎么做?

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

【问题讨论】:

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


    【解决方案1】:

    Button是一个内容控件,可以在按钮的内容中放入其他的xaml控件,并为它们设置LinearGradientBrush。例如,可以为按钮的背景属性设置 ImageBrush,同时为 Rectangle 内联设置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>
    

    结果:

    【讨论】:

    • 好的 - 所以简短的回答似乎是你不能组合画笔。虽然按钮内容的技巧很好,但我仍然是 XAML 新手。
    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2015-01-02
    • 2019-02-15
    • 1970-01-01
    相关资源
    最近更新 更多