В настоящее время я работаю над частью кода о том, как работать с C#. Так что это, вероятно, очень простой вопрос для настоящих программистов.
Я буквально все перепробовал. Но я уже не искал, и мне просто интересно, в чем здесь проблема. Я был бы рад, если бы кто-то мог указать на это для меня. Заранее спасибо!
private void ButtonDraw_Click(object sender, RoutedEventArgs e)
{
SolidColorBrush color = new SolidColorBrush(Colors.White);
MakeRectangle(drawingArea, color, 10, 20, 20);
MakeRectangle(drawingArea, color, 10, 20, 40);
MakeRectangle(drawingArea, color, 10, 20, 60);
}
private void MakeRectangle(Canvas drawing, SolidColorBrush brushcolor, double xPos, double yPos, double size)
{
Rectangle vierkant = new Rectangle();
vierkant.Height = size;
vierkant.Width = size;
vierkant.Margin = new Thickness(xPos, yPos, 0, 0);
vierkant.Stroke = brushcolor;
drawing.Children.Add(MakeRectangle);
}
Либо попробуйте: drawing.Children.Add(vierkant);
, либо drawing.Children.Add(MakeRectangle(drawingArea, color, 10, 20, 20);
оба будут работать, поскольку @John сказал, что вам нужно передать объект типа UIElement, а не метод
Это также выглядит так, как будто он будет рекурсивно повторяться навсегда и выкинет StackOverflowException
. Я предполагаю, что вы новичок в C#, возможно, вам было бы полезно просмотреть некоторые учебные пособия, прежде чем задавать вопросы здесь?
Вам нужно передать объект Virkant Rectangle в метод drawing.Children.Add(), см. ниже:
private void MakeRectangle(Canvas drawing, SolidColorBrush brushcolor, double xPos, double yPos, double size)
{
Rectangle vierkant = new Rectangle();
vierkant.Height = size;
vierkant.Width = size;
vierkant.Margin = new Thickness(xPos, yPos, 0, 0);
vierkant.Stroke = brushcolor;
drawing.Children.Add(vierkant );
}
Боже мой, такой хромой! Я должен был знать. Большое спасибо, что указали на это для меня.
MakeRectangle
это метод.drawing.Children
предположительно ожидаетUIElement
. Еслиdrawing.Children
не является списком, в котором каждый элемент являетсяdelegate
с теми же аргументами, что и методMakeRectangle
, вы не можете добавить его в список. Вы собирались добавитьvierkant
?