我不知道这个简单的事情会有点复杂.我有一个Canvas,我试图动态添加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>
Run Code Online (Sandbox Code Playgroud)
以下是代码背后的代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它抛出了100不是有效值的异常!
aza*_*arp 26
这是答案:
Canvas.SetLeft(ellipse,GetRandomValue());
Canvas.SetTop(ellipse,GetRandomValue());
Run Code Online (Sandbox Code Playgroud)
Ray*_*Ray 14
原因100不起作用是将其SetValue()解释为整数,但是Canvas.Top&Canvas.Left是双倍的.试试吧100d.还SetLeft()与SetTop()工作,因为他们期望双打.
小智 8
以下代码有效:
ellipse.SetValue(Canvas.LeftProperty,100.0);
ellipse.SetValue(Canvas.TopProperty,100.0);
Run Code Online (Sandbox Code Playgroud)
值为双精度型.
| 归档时间: |
|
| 查看次数: |
42112 次 |
| 最近记录: |