WPF VisualBrush extends instead of shingles

I have a VisualBrush on which I set the TileMode property to Tile.

However, he does not slabs - he is stretched. Can anyone help?

thanks

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="test" x:Name="UserControl" d:DesignWidth="500" d:DesignHeight="500"> <UserControl.Resources> <VisualBrush x:Key="MyBrush" TileMode="Tile"> <VisualBrush.Visual> <Grid Width="20"> <Ellipse Fill="#FF00EBFF" Stroke="Black" StrokeThickness="2" Width="20" Height="20" RenderTransformOrigin="0.5,0.5" > </Ellipse> </Grid> </VisualBrush.Visual> </VisualBrush> </UserControl.Resources> <Grid x:Name="LayoutRoot" > <Grid Background="{StaticResource MyBrush}" /> </Grid> </UserControl> 
+4
source share
1 answer

Try the following:

 <UserControl x:Class="WpfApplication1.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <UserControl.Resources> <VisualBrush x:Key="MyBrush" TileMode="Tile" Viewport="20, 20, 20, 20" ViewportUnits="Absolute"> <VisualBrush.Visual> <Ellipse Fill="#FF00EBFF" Stroke="Black" StrokeThickness="2" Width="20" Height="20" RenderTransformOrigin="0.5,0.5" /> </VisualBrush.Visual> </VisualBrush> </UserControl.Resources> <Grid> <Grid x:Name="LayoutRoot" Background="{StaticResource MyBrush}"> </Grid> </Grid> </UserControl> 

When using TileMode, you need to specify ViewPort values.

+4
source

Source: https://habr.com/ru/post/1412792/


All Articles