首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visifire图表回调

Visifire图表回调
EN

Stack Overflow用户
提问于 2013-01-16 02:50:37
回答 1查看 265关注 0票数 0

我想知道是否有一种方法可以在visifire图表渲染完成时获得回调。我一直在尝试创建一个图表并将其保存为图像。这在按下按钮时有效,但如果我没有按下按钮,则不起作用。我猜是因为图表还没有加载完,但我不是很确定。当页面加载时,我设置了在我的ObservableCollection中使用的XAML值。

我基本上有几个数据系列,看起来像这样:

代码语言:javascript
复制
<vc:Chart.Series>
            <vc:DataSeries RenderAs="StackedColumn" LegendText="Portion sequenced" LightingEnabled="False" AxisYType="Primary" Color="#4198AF" DataSource="{Binding SequencedValues}">
                <vc:DataSeries.DataMappings>
                    <vc:DataMapping  MemberName="AxisXLabel" Path="Key"></vc:DataMapping>
                    <vc:DataMapping MemberName="YValue" Path="Value"></vc:DataMapping>
                </vc:DataSeries.DataMappings>

这些数据由ObservableCollection填充。因此,我首先调用我的方法DrawImage()来设置可观察到的收集值,然后调用Save()。正如我所说的,Save()方法在按下按钮时会自动工作,但如果我在绘制图像后调用它,则不会。我认为它最初与页面尚未完成加载有关。但是使用

代码语言:javascript
复制
<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <i:InvokeCommandAction Command="{Binding PageLoadCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

我只在页面加载时调用DrawImage()和Save()。我甚至尝试在DrawImage()和Save()之间设置一个睡眠计时器5秒,看看是否有计时问题,我仍然只得到我的背景图像,但我的DataSeries没有。

所以我的问题是,是否有一种方法可以在Visifire图表加载后被回调,或者是否有其他我缺少的解决方案。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-01-16 17:49:00

克里斯托,

如果您使用的是Silveright,则只能通过用户操作保存图像,如按下按钮;但如果您使用的是WPF,则Chart可以在图表完全呈现后立即保存。但是,如果您希望在填充集合后立即保存Chart,则可以在一段延迟后执行Save()方法(使用计时器)。请检查下面的代码。

代码语言:javascript
复制
MyChart.Series[0].DataSource = collection; //Populate Data 
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = new TimeSpan(0, 0, 0, 0, 3000);// give some delay
timer.Start();

void timer_Tick1(object sender, EventArgs e)
{
  ExportToImage(new Uri("d:/visifire1.png"), MyChart);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14344776

复制
相关文章

相似问题

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