XAML: горизонтальная черепица ImageBrush - PullRequest
0 голосов
/ 11 декабря 2018

Я искал в Интернете, чтобы решить следующую проблему, но, к сожалению, я не нашел никакого рабочего решения.

Моя цель - создать ImageBrush с повторяющимся в нижней части изображенияобъект, который использует кисть.Кроме того, кисть должна иметь прозрачное поле, поэтому повторяющиеся изображения не должны «касаться» границы контейнера.

В настоящее время я могу повторить оси 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 голосов
/ 11 декабря 2018

Вы можете использовать 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>
...