请问关于c的具体应用场景有哪些?

2026-04-29 02:153阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计407个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

我尝试简化并改写了以下内容,确保不超过100个字:

plaintext我创建了一个基于UIElement的BitmapFrame。功能:私有方法RenderToBitmap2()生成200x200像素的RenderTargetBitmap。

我试图生成一个基于UIElement的BitmapFrame.这是我的功能:

private BitmapFrame RenderToBitmap2() { RenderTargetBitmap renderBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); VisualBrush aVisualBrush = new VisualBrush(GenerateTestStackPanel()); drawingContext.DrawRectangle(aVisualBrush, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150))); drawingContext.Close(); renderBitmap.Render(drawingVisual); return BitmapFrame.Create(renderBitmap); }

出于测试和调试的目的,我使用了一个额外的函数来创建一个简单的StackFrame,它应该创建一个可以表示的有效可视元素:

private StackPanel GenerateTestStackPanel() { // Create a red Ellipse. Ellipse myEllipse = new Ellipse(); myEllipse.Fill = Brushes.Green; myEllipse.StrokeThickness = 2; myEllipse.Stroke = Brushes.Black; // Set the width and height of the Ellipse. myEllipse.Width = 200; myEllipse.Height = 200; // Add the Ellipse to the StackPanel. StackPanel myStackPanel = new StackPanel(); myStackPanel.Children.Add(myEllipse); return myStackPanel; }

由于某种原因,VisualBrush没有在DrawRetangle(…)函数中呈现.我可以看到绿色边框,但没有别的.另外,如果我用标准笔刷换掉VisualBrush,它可以很好地工作:

drawingContext.DrawRectangle(Brushes.Plum, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150)));

提前致谢!

看一下这个从UIElement创建BitmapSource的另一种方法:

MSDN Thread

我也一直试图让VisualBrush工作,没有任何运气,这使我进入这个线程.

请问关于c的具体应用场景有哪些?

public static BitmapSource CreateBitmapSourceFromVisual( Double width, Double height, Visual visualToRender, Boolean undoTransformation) { if (visualToRender == null) { return null; } RenderTargetBitmap bmp = new RenderTargetBitmap((Int32)Math.Ceiling(width), (Int32)Math.Ceiling(height), 96, 96, PixelFormats.Pbgra32); if (undoTransformation) { DrawingVisual dv = new DrawingVisual(); using (DrawingContext dc = dv.RenderOpen()) { VisualBrush vb = new VisualBrush(visualToRender); dc.DrawRectangle(vb, null, new Rect(new Point(), new Size(width, height))); } bmp.Render(dv); } else { bmp.Render(visualToRender); } return bmp; }

本文共计407个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

我尝试简化并改写了以下内容,确保不超过100个字:

plaintext我创建了一个基于UIElement的BitmapFrame。功能:私有方法RenderToBitmap2()生成200x200像素的RenderTargetBitmap。

我试图生成一个基于UIElement的BitmapFrame.这是我的功能:

private BitmapFrame RenderToBitmap2() { RenderTargetBitmap renderBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); VisualBrush aVisualBrush = new VisualBrush(GenerateTestStackPanel()); drawingContext.DrawRectangle(aVisualBrush, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150))); drawingContext.Close(); renderBitmap.Render(drawingVisual); return BitmapFrame.Create(renderBitmap); }

出于测试和调试的目的,我使用了一个额外的函数来创建一个简单的StackFrame,它应该创建一个可以表示的有效可视元素:

private StackPanel GenerateTestStackPanel() { // Create a red Ellipse. Ellipse myEllipse = new Ellipse(); myEllipse.Fill = Brushes.Green; myEllipse.StrokeThickness = 2; myEllipse.Stroke = Brushes.Black; // Set the width and height of the Ellipse. myEllipse.Width = 200; myEllipse.Height = 200; // Add the Ellipse to the StackPanel. StackPanel myStackPanel = new StackPanel(); myStackPanel.Children.Add(myEllipse); return myStackPanel; }

由于某种原因,VisualBrush没有在DrawRetangle(…)函数中呈现.我可以看到绿色边框,但没有别的.另外,如果我用标准笔刷换掉VisualBrush,它可以很好地工作:

drawingContext.DrawRectangle(Brushes.Plum, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150)));

提前致谢!

看一下这个从UIElement创建BitmapSource的另一种方法:

MSDN Thread

我也一直试图让VisualBrush工作,没有任何运气,这使我进入这个线程.

请问关于c的具体应用场景有哪些?

public static BitmapSource CreateBitmapSourceFromVisual( Double width, Double height, Visual visualToRender, Boolean undoTransformation) { if (visualToRender == null) { return null; } RenderTargetBitmap bmp = new RenderTargetBitmap((Int32)Math.Ceiling(width), (Int32)Math.Ceiling(height), 96, 96, PixelFormats.Pbgra32); if (undoTransformation) { DrawingVisual dv = new DrawingVisual(); using (DrawingContext dc = dv.RenderOpen()) { VisualBrush vb = new VisualBrush(visualToRender); dc.DrawRectangle(vb, null, new Rect(new Point(), new Size(width, height))); } bmp.Render(dv); } else { bmp.Render(visualToRender); } return bmp; }