gpt4 book ai didi

c# - 在 Canvas 上画圆

转载 作者:行者123 更新时间:2023-12-05 09:18:31 26 4
gpt4 key购买 nike

我最近开始学习 C# 编程。首先我画了一个简单的圆圈,但我对“char”-e.Graphics 有疑问。我有必要的 namespace ,如 System.Drawing 和 System.windows.Form程序与 WPF 应用程序有关。我希望能够输入尺寸并按下按钮绘制圆圈。

 namespace drawcircle
{
/// <summary>
/// Logika interakcji dla klasy MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void circle_Click(object sender, RoutedEventArgs e)
{
int iks = int.Parse(beginx.Text);
int igrek = int.Parse(beginy.Text);
int width = int.Parse(wid.Text);
int height = int.Parse(hei.Text);

draw.circle(iks, igrek, width, height);
}


class draw
{
public static void circle(int x, int y, int width, int height)
{
Pen color = new Pen(Color.Red);
System.Drawing.SolidBrush fillblack = new System.Drawing.SolidBrush(Color.Black);

Rectangle circle = new Rectangle(x, y, width, height);

Graphics g = e.Graphics;
g.DrawEllipse(color, circle);

}
}
}
}

最佳答案

首先,你已经为 winforms 创建了一个方法(如果你需要在 wpf 中导入 .Forms 你应该知道它错误的)。 SolidBrushColor.Red 之类的东西在 wpf 中不存在。在 winforms 中,解决方案将是一个非常小的变化:

窗体

调用方式:

draw.circle(10, 20, 40, 40, this.CreateGraphics());

类:

class draw
{
public static void circle(int x, int y, int width, int height, Graphics g)
{
Pen color = new Pen(Color.Red);
System.Drawing.SolidBrush fillblack = new System.Drawing.SolidBrush(Color.Black);
Rectangle circle = new Rectangle(x, y, width, height);
g.DrawEllipse(color, circle);
}
}

对于 wpf 我会尝试做这样的事情:

WPF

调用方式:

draw.circle(10, 10, 100, 100, MainCanvas);

类:

class draw
{
public static void circle(int x, int y, int width, int height, Canvas cv)
{

Ellipse circle = new Ellipse()
{
Width = width,
Height = height,
Stroke = Brushes.Red,
StrokeThickness = 6
};

cv.Children.Add(circle);

circle.SetValue(Canvas.LeftProperty, (double)x);
circle.SetValue(Canvas.TopProperty, (double)y);
}
}

XAML:
将您的网格更改为 Canvas 并将其命名为:

<Canvas Name="MainCanvas">

</Canvas>

关于c# - 在 Canvas 上画圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44196638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com