Több alakzat rajzolása a Canvasra WPF-ben

Több alakzat rajzolása a Canvasra WPF-ben
2012-11-03T17:04:29+01:00
2012-11-03T18:07:36+01:00
2022-11-27T07:20:35+01:00
Aldebaran
Canvasra akarok több ellipszist felrajzolni ciklusból. A kódom hiba nélkül lefut, mégis csak egy alakzatot kapok eredményként:

C#:

public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void startDraw_Click(object sender, RoutedEventArgs e) { Canvas myCanvas = this.FindName("canvas") as Canvas; SolidColorBrush mySolidColorBrush = new SolidColorBrush(); mySolidColorBrush.Color = Color.FromArgb(255, 255, 255, 0); //Create common attributes Ellipse[] myEllipse = new Ellipse[2]; for (int i = 0; i < 2; i++) { myEllipse[i] = new Ellipse(); myEllipse[i].Fill = mySolidColorBrush; myEllipse[i].StrokeThickness = 1; myEllipse[i].Stroke = Brushes.Black; myEllipse[i].Width = 50; myEllipse[i].Height = 50; Random rnd = new Random(); int top = rnd.Next(100); Canvas.SetTop(myEllipse[i], top); int left = rnd.Next(100); Canvas.SetLeft(myEllipse[i], left); } //Display for (int j = 0; j < 2; j++) { myCanvas.Children.Add(myEllipse[j]); } } }

XAML:


<Window x:Class="CanvasDrawDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="300" Width="300"> <StackPanel> <Canvas x:Name="canvas" Width="268" Height="200" Margin="5" /> <Button x:Name="startDraw" Content="Start draw" Margin="5" Click="startDraw_Click" /> </StackPanel> </Window>
Mutasd a teljes hozzászólást!
Nem lehet, hogy fedik egymást az ellipszisek?
Próbáld ki ezt:
for (int i = 0; i < 2; i++) { myEllipse[i] = new Ellipse(); myEllipse[i].Fill = mySolidColorBrush; myEllipse[i].StrokeThickness = 1; myEllipse[i].Stroke = Brushes.Black; myEllipse[i].Width = 50; myEllipse[i].Height = 50; Random rnd = new Random(); int top = rnd.Next(50)+ i * 25; Canvas.SetTop(myEllipse[i], top); int left = rnd.Next(50)+ i * 25; Canvas.SetLeft(myEllipse[i], left); }
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd