XAML:ImageBrush水平平铺

时间:2018-12-11 10:00:49

标签: xaml imagebrush

我已经在整个互联网上进行搜索以解决以下问题,但是很遗憾,我没有找到任何可行的解决方案。

我的目标是要使ImageBrush在使用画笔的对象的底部具有x重复图像。另外,刷子应具有透明的边缘,因此重复的图像不应“碰到”容器的边界。

目前,我能够重复图像的x轴和y轴(并且在那里卡住了...)。为此,我使用以下XAML:

<ImageBrush 
    x:Key="MandatoryIndicator" 
    ImageSource="image.png" 
    Stretch="None" 
    TileMode="Tile" 
    ViewportUnits="Absolute" 
    Viewport="0,0,16,16" 
    AlignmentY="Bottom"/>

它看起来像这样:

enter image description here

我喜欢这样:

enter image description here

如果您知道我必须如何修改笔刷XAML,那将是非常棒的c [〜] =)

1 个答案:

答案 0 :(得分:0)

您可以将VisualBrush与两个嵌套元素一起使用,如下所示。外部边界(或其他外部元素)对于透明边距是必需的。

<VisualBrush Stretch="None" AlignmentX="Left" AlignmentY="Bottom">
    <VisualBrush.Visual>
        <Border Background="Transparent"
                Width="{Binding ActualWidth,
                        RelativeSource={RelativeSource AncestorType=FrameworkElement}}">
            <Rectangle Margin="10" Height="16">
                <Rectangle.Fill>
                    <ImageBrush ImageSource="image.png" TileMode="Tile"
                                Viewport="0,0,16,16" ViewportUnits="Absolute"/>
                </Rectangle.Fill>
            </Rectangle>
        </Border>
    </VisualBrush.Visual>
</VisualBrush>
相关问题