XAML: ImageBrush 水平平铺
XAML: ImageBrush horizontal tiled
我在 Internet 上搜索以解决以下问题,但不幸的是我没有找到任何有效的解决方案。
我的目标是让 ImageBrush 在使用画笔的对象的底部有一个 x 重复的图像。额外的画笔应该有一个透明的边缘,所以重复的图像应该不会 "touch" 容器的边框。
目前我能够重复图像的 x 轴和 y 轴(我被卡住了......)。我使用以下 XAML:
<ImageBrush
x:Key="MandatoryIndicator"
ImageSource="image.png"
Stretch="None"
TileMode="Tile"
ViewportUnits="Absolute"
Viewport="0,0,16,16"
AlignmentY="Bottom"/>
看起来像这样:
我喜欢这样:
如果你知道我如何修改我的笔刷XAML,那就太好了c[~] =)
您可以使用带有两个嵌套元素的 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>
我在 Internet 上搜索以解决以下问题,但不幸的是我没有找到任何有效的解决方案。
我的目标是让 ImageBrush 在使用画笔的对象的底部有一个 x 重复的图像。额外的画笔应该有一个透明的边缘,所以重复的图像应该不会 "touch" 容器的边框。
目前我能够重复图像的 x 轴和 y 轴(我被卡住了......)。我使用以下 XAML:
<ImageBrush
x:Key="MandatoryIndicator"
ImageSource="image.png"
Stretch="None"
TileMode="Tile"
ViewportUnits="Absolute"
Viewport="0,0,16,16"
AlignmentY="Bottom"/>
看起来像这样:
我喜欢这样:
如果你知道我如何修改我的笔刷XAML,那就太好了c[~] =)
您可以使用带有两个嵌套元素的 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>