I did not knew that this simple thing would be slightly complicated. I have a Canvas in which I am trying to add Ellipse dynamically. Here is the code:
<StackPanel> <Canvas Name="canvas" Background="LightBlue" Margin="5" Width="250" Height="250"> </Canvas> <Button Content="Draw Images" Click="Button_Click" Width="100" Margin="10" /> </StackPanel>
And here is the code behind:
private void Button_Click(object sender, RoutedEventArgs e) { Ellipse ellipse = new Ellipse(); ellipse.Fill = Brushes.Red; ellipse.Width = 10; ellipse.Height = 10; ellipse.SetValue(Canvas.LeftProperty,100); ellipse.SetValue(Canvas.TopProperty,100); canvas.Children.Add(ellipse); }
For some reason it throws the exception that 100 is not a valid value!
Here is the answer:
Canvas.SetLeft(ellipse,GetRandomValue()); Canvas.SetTop(ellipse,GetRandomValue());
The reason 100
doesn't work is that SetValue()
interprets it as an integer, but Canvas.Top
& Canvas.Left
are doubles. Try 100d
instead. Also SetLeft()
& SetTop()
work because they expect doubles.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With