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