|  | 
 
 
 楼主|
发表于 2023-3-25 15:48:41
|
显示全部楼层 
| public async Task<BitmapSource> RenderCirclesAsync(int count, double radius, double width, double height) {
 // create a new RenderTargetBitmap with the specified width and height
 RenderTargetBitmap renderTarget = new RenderTargetBitmap(
 (int)width, (int)height, 96, 96, PixelFormats.Pbgra32);
 
 // create a new DrawingVisual for rendering the circles
 DrawingVisual drawingVisual = new DrawingVisual();
 
 // create a new Random instance for generating random circle positions
 Random random = new Random();
 
 // create a new SolidColorBrush for filling the circles
 SolidColorBrush fillBrush = new SolidColorBrush(Colors.Blue);
 
 // create a new Pen for outlining the circles
 Pen strokePen = new Pen(Brushes.Black, 1.0);
 
 // render the circles asynchronously
 await Task.Run(() =>
 {
 using (DrawingContext drawingContext = drawingVisual.RenderOpen())
 {
 for (int i = 0; i < count; i++)
 {
 double x = random.NextDouble() * width;
 double y = random.NextDouble() * height;
 
 drawingContext.DrawEllipse(fillBrush, strokePen, new Point(x, y), radius, radius);
 }
 }
 });
 
 // render the drawing visual to the RenderTargetBitmap
 renderTarget.Render(drawingVisual);
 
 // return the rendered bitmap source
 return renderTarget;
 }
 
 | 
 |