急求:如何将 WPF ChartControl生成的图片保存到本地为jpg格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求:如何将 WPF ChartControl生成的图片保存到本地为jpg格式相关的知识,希望对你有一定的参考价值。

WriteableBitmap可以生成一张图片,然后用Render方法可以直接把ChartControl画上去,然后保存成文件即可

保存方法参考这里的代码
参考技术A WriteableBitmap 生成图片是 SilverLight里!~ 在WPF里 应该用 RenderTargetBitmap

急求WPF大牛! WPF 数据太多时,DataGrid中CheckBox列误选的问题!

布局文件如下:
<DataGrid Height="300" Name="List" Width="200" ItemsSource="Binding Info" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="选择" Width="50">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="x:Type CheckBox">
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
<DataGridTextColumn Header="ID" Binding="Binding ID" Width="50" />
<DataGridTextColumn Header="Job" Binding="Binding JobNum" Width="80"/>
</DataGrid.Columns>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center">
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
后台代码如下:
public struct Info//定义与DataGrid相关的数据结构

public string ID get; set;
public string JobNum get; set;

public ObservableCollection<Info> list = new ObservableCollection<Info>();
public MainWindow()

Info info = new Info();
for (int i = 0; i < 1000;i++ )

info.ID = i.ToString();
info.JobNum = i.ToString();
list.Add(info);

InitializeComponent();
List.ItemsSource = list; //为DataGrid添加数据源


运行状况:
当我只选择前几个用户:比如0、1、2、3时,如下图

不再做其他任何操作,向下滑动滚动条,发现其他的行有误选情况,如下图:

这是怎么回事呀,求大牛解释!!

这个是因为你的DataGridCheckBoxColumn没有绑定数据的原因
WPF里面的DataGrid有Virtualization提升绘制性能,会导致控件的复用
你这儿的Info结构里面加个IsChecked属性,做个数据绑定就行了追问

已经解决了!的确是数据绑定的问题.

参考技术A 你把DataGridCheckBoxColumn 改成模板列,里面再塞个checkbox试试。
DataGridCheckBoxColumn 本身可能存在bug。追问

刚才试了模板列,还是不行啊!

追答

晕,你checkbox有木有设定神马绑定项?

追问

没有对checkbox列设定,但对其他列设定了绑定

参考技术B datagrid 滚动条刷新的问题。追问

我感觉也是滚动条刷新的问题,要怎么解决呢?

追答

ScrollViewer.CanContentScroll="False" 这个很重要

追问

这个方法我试过,可以解决checkbox混乱的问题,但是会引起另一个问题,运行时比较卡,貌似设置了 ScrollViewer.CanContentScroll="False" 之后,系统会一次性加载datagrid中的所有数据而引起的。这样的话得不偿失呀!请问还有其他方法吗?

追答

ScrollViewer.CanContentScroll=false 是按物理滚动,按像素滚动。
ScrollViewer.CanContentScroll=true是按逻辑滚动,会改变Content的内容的。
你真想按逻辑滚动,就自定义滚动的内容(需要binding数据源,这个比较麻烦点),或者采用分页的形式(也要花点功夫,其实数据太多,分页倒是用户体验更好)。

追问

现在不考虑分页。怎么自定义滚动的内容!

以上是关于急求:如何将 WPF ChartControl生成的图片保存到本地为jpg格式的主要内容,如果未能解决你的问题,请参考以下文章

急求!!用C#编写WPF工程,如何在主窗口实时显示程序运行的过程??

DevExress笔记

急求WPF大牛! WPF 数据太多时,DataGrid中CheckBox列误选的问题!

急求!!一个makefile如何生成两个可执行文件

WPF DevExpress 设置雷达图Radar样式

如何将调色板图像从另一个线程生成到 WPF UI 线程?