DrawingContext的例子
时间: 2024-04-22 15:24:28 浏览: 20
在WPF(Windows Presentation Foundation)中,可以使用DrawingContext对象来进行绘图操作。以下是一个简单的示例,演示如何使用DrawingContext绘制一个红色矩形:
```csharp
using System.Windows;
using System.Windows.Media;
class Program
{
static void Main()
{
// 创建一个绘图表面
DrawingVisual drawingVisual = new DrawingVisual();
// 获取DrawingContext对象
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
// 绘制红色矩形
Rect rect = new Rect(new Point(50, 50), new Size(100, 100));
SolidColorBrush brush = new SolidColorBrush(Colors.Red);
drawingContext.DrawRectangle(brush, null, rect);
}
// 将绘图表面渲染到Bitmap
RenderTargetBitmap bitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);
bitmap.Render(drawingVisual);
// 保存Bitmap为图像文件
using (FileStream fileStream = new FileStream("rectangle.png", FileMode.Create))
{
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.Save(fileStream);
}
}
}
```
在上述示例中,我们首先创建了一个DrawingVisual对象,这是WPF中用于绘制的可视化对象。然后,我们使用drawingVisual.RenderOpen()方法获取DrawingContext对象,在该对象上进行绘图操作。
在DrawingContext上,我们使用DrawRectangle方法绘制了一个红色矩形。DrawRectangle方法需要提供一个画刷(brush)用于填充矩形的颜色,以及可选的画笔(pen)用于绘制矩形的边框。
接下来,我们将绘图表面渲染到一个RenderTargetBitmap对象中,以便将其保存为图像文件。最后,我们使用PngBitmapEncoder将Bitmap保存为PNG格式的图像文件。
请注意,上述示例仅演示了如何使用DrawingContext进行简单的绘图操作。您可以根据需要使用DrawingContext来绘制更复杂的图形、文本和图像等。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)