在C#中,實現交互式繪圖通常需要使用Windows Forms或WPF。這里我將分別為這兩種技術提供一個簡單的示例。
首先,創建一個新的Windows Forms應用程序項目。然后按照以下步驟操作:
a. 向項目中添加一個名為“MyCanvas”的新UserControl。 b. 雙擊“MyCanvas”以打開設計器,然后刪除默認的Label控件。 c. 在“MyCanvas”的代碼文件中,重寫OnPaint方法以處理繪圖。
using System.Drawing;
using System.Windows.Forms;
public partial class MyCanvas : UserControl
{
public MyCanvas()
{
InitializeComponent();
this.DoubleBuffered = true; // 避免閃爍
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 在這里添加你的繪圖代碼
e.Graphics.DrawLine(Pens.Black, new Point(10, 10), new Point(50, 50));
}
}
d. 在主窗體(Form1)上添加一個MyCanvas控件,并設置其Dock屬性為Fill。
首先,創建一個新的WPF應用程序項目。然后按照以下步驟操作:
a. 在MainWindow.xaml中,添加一個名為“MyCanvas”的Canvas控件,并設置其HorizontalAlignment和VerticalAlignment屬性為Stretch。
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Interactive Drawing" Height="450" Width="800">
<Grid>
<Canvas Name="MyCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</Window>
b. 在MainWindow.xaml.cs中,重寫OnRender方法以處理繪圖。
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace InteractiveDrawingWpf
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
// 在這里添加你的繪圖代碼
dc.DrawLine(new Pen(Brushes.Black, 1), new Point(10, 10), new Point(50, 50));
}
}
}
現在,你已經在兩個平臺上實現了基本的交互式繪圖。接下來,你可以根據需要添加更多的繪圖元素和交互功能。