【问题标题】:How to fill Rectangle with lines in UWP如何在 UWP 中用线条填充矩形
【发布时间】:2016-07-14 11:24:27
【问题描述】:

我确信我可以在标题上做得更好,但这就是我想要的。我有一个 UWP 应用程序,我想在其中实现如下截图:

这是我的代码中的一个 sn-p:

<Border BorderBrush="Black">
    <Grid>
        <Rectangle Fill="Green" />
    </Grid>
</Border>

我正在尝试使用屏幕截图中给出的形状填充网格中的矩形。我该怎么做?

【问题讨论】:

  • 当我尝试在 Page.Resources 中添加 VisualBrush 资源时,它显示“无法解析符号 'VisualBrush'”
  • 这不是重复的,因为它是关于 UWP,而不是 WPF。 UWP 中没有 VisualBrush。
  • 如果 Rectangle 不是特别大,您可以准备一个 BitmapImage 资源并将其与 ImageBrush 一起使用。

标签: xaml uwp shapes


【解决方案1】:

所以,虽然我目前还没有办法在 UWP 上进行测试,但我认为像 LinearGradientBrushMappingMode 这样的东西是受支持的,因为这种方式适用于 WPF、Silverlight 等其他任何东西......这个假设,试一试。

<Rectangle Stroke="LightBlue" StrokeThickness="5">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="0,0" EndPoint="6,4" 
                             MappingMode="Absolute" SpreadMethod="Repeat">
            <GradientStop Color="LightBlue" Offset="0.25"/>
            <GradientStop Color="#00000000" Offset="0.15"/>
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

您可以调整您的起点/终点/偏移量以获得所需的角度和大小,但它传达了这个概念。例如,如果您增加您的 EndPoint 数字,您将获得像您的示例中一样的粗线。

您也可以将画笔变成资源,并将其用作路径、背景或任何通常支持 LinearGradientBrush 的资源。希望这会有所帮助,干杯。

PS - 一些 other neat things 你可以使用它们,它们应该很容易移植到 UWP。

附录:

这更接近您的示例,为您节省一点麻烦,注意差异。

<Rectangle Stroke="LightBlue" StrokeThickness="5">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="8,0" EndPoint="18,8" 
                     MappingMode="Absolute" SpreadMethod="Repeat">
            <GradientStop Color="LightBlue" Offset="0.15"/>
            <GradientStop Color="White" Offset="0.05"/>
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

【讨论】:

  • 它工作正常。谢谢克里斯。我可能想保持白线的粗细不变,但增加蓝线的粗细。
  • @AshishAgrawal 就像我建议的那样增加 Endpoint 上的数字,大约 20 左右,其中一个应该这样做。但是,如果您对其进行修补,您将得到您想要的东西,并在此过程中学到一些东西。 ;)
  • :) 我试过这样做,但问题是当我将 EndPoint 更改为 {12,6} 之类的东西时,它也会使白线变粗(我不想要)。无论如何,非常感谢代码,我会尝试调整它以使其与屏幕截图完全匹配。再次感谢:)
  • @AshishAgrawal 查看更新的答案,我添加了另一个示例以将其带到您的示例中或关闭,请注意差异。 :)
  • 非常感谢您这样做。我很接近,但这是完美的:)
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多