首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >呈现Visiblox图表,以便在没有图形用户界面的情况下报告服务,引发NullReferenceException

呈现Visiblox图表,以便在没有图形用户界面的情况下报告服务,引发NullReferenceException
EN

Stack Overflow用户
提问于 2013-01-23 17:39:19
回答 1查看 197关注 0票数 0

我有一个非常简单的Visiblox图表,它工作得很好:

代码语言:javascript
复制
<charts:Chart Grid.Row="1" Height="100" x:Name="VisiChart">
    <charts:Chart.Series>
        <charts:LineSeries/>
    </charts:Chart.Series>
</charts:Chart>

我在代码背后设置了我的DataSeries

代码语言:javascript
复制
VisiChart.Series[0].DataSeries = MyDataSeries;

就这么简单。

我可以使用以下方法从可视元素获取位图:

代码语言:javascript
复制
private static RenderTargetBitmap AsBmpToClipboard(FrameworkElement element)
{
    var width = (int)Math.Round(element.ActualWidth);
    var height = (int)Math.Round(element.ActualHeight);
    var bmpCopied = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
    var dv = new DrawingVisual();
    using (var dc = dv.RenderOpen())
    {
        var vb = new VisualBrush(element);
        dc.DrawRectangle(vb, null, new Rect(new Point(), new Size(width, height)));
    }
    bmpCopied.Render(dv);
    Clipboard.SetImage(bmpCopied); // clipboard it for testing reasons
    return bmpCopied;
}

现在我在报告中使用这个位图什么的。这个很管用。

我的问题来了:如果我想创建没有GUI的图表图像的报表(在服务器应用程序中,例如在Windows服务中或在IIS中),我从图表中得到一个NullReferenceException

我要做的是创建包含图表的控件。然后,我在控件上调用Measure(),让它完成它的工作。这就是我得到的地方:

代码语言:javascript
复制
NullReferenceException
at Visiblox.Charts.Chart.OnApplyTemplateInternal()
   at Visiblox.Charts.ChartBase.OnApplyTemplate()
   at System.Windows.FrameworkElement.ApplyTemplate()

我想我必须手动设置图表的模板,但是在哪里可以从VisiBlox找到默认的模板呢?我该如何运用它们呢?还是还有别的问题?

非常感谢。

编辑

因此,我认为如果我在VisiBox图表(或包含图表的元素)上调用Console Application中的度量衡(),我总是会得到这个异常。因此,我也可以将这个问题的标题改为--如何在控制台应用程序中使用VisiBlox图表

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 12:23:22

好吧,我想出了答案:

1)将visiblox包装在

代码语言:javascript
复制
InvalidationHandler.ForceImmediateInvalidate = true;
// here comes the chart
InvalidationHandler.ForceImmediateInvalidate = false;

让它真正呈现。

2)手动设置数据,而不是通过DataContext设置数据。如果没有显示组件,则可能不会连接。

3)手工设置图表的样式。默认设置在Visiblox Generic.xaml文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14485913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档