Вот кое-что, что может помочь вам начать.Он имеет холст, содержащий несколько фигур, и элемент управления Slider, который позволяет управлять масштабированием.При необходимости вы можете просто добавить другие элементы в Canvas.
<DockPanel>
<Slider x:Name="slider" Minimum=".1" Maximum="10" Value="1" DockPanel.Dock="Top"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<Canvas Width="300" Height="300">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=slider, Path=Value}"
ScaleY="{Binding ElementName=slider, Path=Value}"/>
</Canvas.LayoutTransform>
<Ellipse Canvas.Left="10" Canvas.Top="10" Width="20" Height="20"
Stroke="Black" StrokeThickness="1" Fill="Red"/>
<Line Canvas.Left="20" Canvas.Top="30" X1="0" X2="0" Y1="0" Y2="50"
Stroke="Black" StrokeThickness="1"/>
<Ellipse Canvas.Left="10" Canvas.Top="80" Width="20" Height="20"
Stroke="Black" StrokeThickness="1" Fill="Yellow"/>
</Canvas>
</Border>
</ScrollViewer>
</DockPanel>
EDIT :
Чтобы изменить стиль штрихов для линии, просто установите свойство StrokeDashArray.Это позволяет вам указать шаблон для того, как выглядит ваша линия.Он следует формату «длина сегмента, длина промежутка, длина сегмента, длина промежутка ...», поэтому установка этой строки:
<Line Canvas.Left="100" Canvas.Top="100" Stroke="Black"
X1="0" X2="100" Y1="0" Y2="0"
StrokeThickness="3" StrokeDashArray="2,2"/>
дает вам это (то есть линию, состоящую из серии сегментов сдлина 2, за которой следуют пробелы длиной 2):

Если для параметра StrokeDashArray установлено значение
StrokeDashArray="5,1,1,1"
, будет получен шаблон с тире-точкой.
