【发布时间】:2019-11-08 16:41:03
【问题描述】:
我正在尝试创建一个简单的可视化,其中包含大量要绘制的几何对象(10,000+),但是我目前正在尝试了解程序的正确流程。我究竟如何以有效的方式将此几何组绘制到窗口?
namespace DataVisualizer
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Canvas newCanvas = new Canvas();
DrawingGroup tmpDrawing = new DrawingGroup();
GeometryGroup geoGroup = new GeometryGroup();
Brush brush = new SolidColorBrush(Colors.Blue);
int particleCount = 10000;
int particleWidth = 5;
int particleHeight = 5;
Random rnd = new Random();
//create all the geometry and add it too the geometry group
for (int x = 0; x < particleCount; ++x)
{
geoGroup.Children.Add(new RectangleGeometry(new Rect(rnd.Next(500), rnd.Next(500), particleWidth, particleHeight)));
}
tmpDrawing.Children.Add(new GeometryDrawing(brush, null, geoGroup));
newCanvas.Children.Add(new DrawingImage(tmpDrawing)); //does not work
newCanvas.Background = new DrawingImage(tmpDrawing); //does not work
//it seems i dont wana be using UIElement.. how do i effeciently draw geometry?
}
}
}
我发现网上没有一个简单的解释来概述一般流程。非常感谢任何帮助。
【问题讨论】:
-
直接的方法是将 GeometryGroup 传递给 Path 元素的 Data 属性。
标签: c# wpf .net-core graphics geometry