Skip to content

Instantly share code, notes, and snippets.

@JCBurnside
Created January 24, 2019 17:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JCBurnside/4875fd8bb63e99acb81e46d94c9107fa to your computer and use it in GitHub Desktop.
Save JCBurnside/4875fd8bb63e99acb81e46d94c9107fa to your computer and use it in GitHub Desktop.
I have tried binding the the ItemsControl and the canvas but it doesn't set them.
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:CanvasTesting.ViewModels;assembly=CanvasTesting"
Icon="resm:CanvasTesting.Assets.avalonia-logo.ico"
Title="CanvasTesting"
Width="400"
Height="500">
<Design.DataContext>
<vm:MainWindowViewModel/>
</Design.DataContext>
<DockPanel>
<Grid DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="83*"/>
<ColumnDefinition Width="7*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Sides</TextBlock>
<Slider Grid.Row="0" Grid.Column="1" Orientation="Horizontal" Minimum="3" Maximum="30" Value="{Binding Sides}"/>
<TextBox Grid.Row="0" Grid.Column="2" Text="{Binding Sides}"/>
<TextBlock Grid.Row="1" Grid.Column="0">Radius</TextBlock>
<Slider Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Minimum="0" Maximum="300" Value="{Binding Radius}"/>
<TextBox Grid.Row="1" Grid.Column="2" Text="{Binding Radius}"/>
<TextBlock Grid.Row="2" Grid.Column="0">Angle</TextBlock>
<Slider Grid.Row="2" Grid.Column="1" Orientation="Horizontal" Minimum="0" Maximum="360" Value="{Binding Angle}"/>
<TextBox Grid.Row="2" Grid.Column="2" Text="{Binding Angle}"/>
</Grid>
<ItemsControl Items="{Binding Lines}" Height="{Binding CanvasHeight, Mode=OneWayToSource}" Width="{Binding CanvasWidth, Mode=OneWayToSource}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.DataTemplates>
<DataTemplate>
<Line StartPoint="{Binding Start}" EndPoint="{Binding End}" Stroke="Silver" StrokeThickness="3"/>
</DataTemplate>
</ItemsControl.DataTemplates>
</ItemsControl>
</DockPanel>
</Window>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment