gpt4 book ai didi

c# - 如何在屏幕外渲染图表(来自 wpf 工具包)控件?

转载 作者:行者123 更新时间:2023-11-30 12:52:31 29 4
gpt4 key购买 nike

我想在控制台应用程序中呈现一个图表控件(来自 WPF 工具包 http://wpf.codeplex.com)(实际上我从来没有向用户展示过它),但我一直得到一个空图像。如果我选择其他控件(例如 TextBlock),那么一切都会按预期进行。这是重现问题的代码:

//开始

Chart chart = new Chart { Width = 300, Height = 230 };
//我还没有添加系列,因为我认为这可能会导致问题...
chart.Background = Brushes.Blue;
chart.BorderBrush = Brushes.Red;
chart.BorderThickness = new Thickness(10);
chart.Title = "测试图表";
chart.Measure(new Size(chart.Width, chart.Height));
chart.Arrange(new Rect(new Size(chart.Width, chart.Height)));

RenderTargetBitmap rtb = new RenderTargetBitmap((int)chart.Width, (int)chart.Height, 96, 96, PixelFormats.Pbgra32);
rtb.Render(图表);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
使用 (System.IO.Stream stream = System.IO.File.Create("C:\\chart.png"))
{
png.Save(stream);

//结束

如果我不是在控制台而是在 WPF 应用程序中运行此代码,其中图表是显示在表单上的控件,则一切正常。人们提到了一些关于用于在不同线程上绘制控件的动画。我试着让我的主线程休眠,希望其他人有时间绘制图表。这里也没有运气......

有人有想法吗?如何在屏幕外渲染此控件?

最佳答案

今天得到了解决方案:

  1. 停用图表的所有动画
  2. Measure()Arrange() 之后调用图表的方法 UpdateLayout()

就是这样!

关于c# - 如何在屏幕外渲染图表(来自 wpf 工具包)控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4471168/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com