我不知道这个简单的事情会有点复杂。我有一个画布,我试图在其中动态添加Ellipse。代码如下:
<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>
下面是后面的代码:
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);
}
由于某种原因,它会抛出100不是有效值的异常!
发布于 2009-07-14 02:39:52
这就是答案:
Canvas.SetLeft(ellipse,GetRandomValue());
Canvas.SetTop(ellipse,GetRandomValue());
发布于 2009-07-14 09:51:12
100
不工作的原因是SetValue()
将其解释为整数,而Canvas.Top
和Canvas.Left
是双精度的。请尝试使用100d
。此外,SetLeft()
和SetTop()
也可以工作,因为他们希望是双倍的。
发布于 2010-09-10 03:43:51
下面的代码可以工作:
ellipse.SetValue(Canvas.LeftProperty,100.0);
ellipse.SetValue(Canvas.TopProperty,100.0);
这些值是double类型的。
https://stackoverflow.com/questions/1123101
复制相似问题