Возможность рисовать 2D-сетку на холсте, чьим родителем является Grid, но когда scrollViewer сетки уменьшается, 2D-сетка не полностью заполняет Grid (или Canvas, не уверенный, какой это).
Использование решения, приведенного в статье "wpfhow-to-draw-a-grid-on-canvas"
<UserControl x:Name="boardViewControl" x:Class="FWPFControlLibrary.BoardView"
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"
xmlns:local="clr-namespace:FWPFControlLibrary"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid Background="{DynamicResource {x:Static SystemColors.AppWorkspaceBrushKey}}">
<ScrollViewer x:Name="scrollViewer" Margin="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" PanningMode="Both" PreviewMouseWheel="scrollViewer_PreviewMouseWheel" ManipulationDelta="scrollViewer_ManipulationDelta">
<Canvas x:Name="boardView" Width="300" Height="300">
<Canvas.Background>
<DrawingBrush TileMode="Tile" Viewport="-10,-10,20,20" ViewportUnits="Absolute">
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,100,100"/>
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Brush="Gray" Thickness="1"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Canvas.Background>
</Canvas>
</ScrollViewer>
<Slider x:Name="zoomSlider" HorizontalAlignment="Right" VerticalAlignment="Bottom" Minimum="0.10" Maximum="3" SmallChange="0.10" TickFrequency="0.25" TickPlacement="TopLeft" Value="1" Foreground="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" Orientation="Vertical" Height="100" Margin="0,0,25,25" LargeChange="0.25" />
</Grid>
</UserControl>
При увеличении масштаба области справа и снизу остаются пустыми. Я ожидаю, что 2D-сетка полностью заполнит доступную область, но это не так. Есть ли какая-то привязка, которую нужно добавить к этому коду?