怎样自定义DevExpress Grid的打印外观

操作方法

  • 01

    默认情况下, 由于表格是一个“所见即所得”的控件,DXGrid以一种简单的表格格式被导出和打印。但是你仍然可以调节表格打印的外观。这篇文章讲述了怎样使用表格 的打印模板和选项来创建你自己特定的打印外观。但是, 如果你想得到全部的自定义数据打印外观,欢迎你考虑使用我们的 XtraReports 产品,它会提供给你一种创建自定义报告的强大而灵活的方式 。 默认情况下, 表格是作为一个简单的表来打印 。它的宽度被调节成适应一个报告页面,你能够通过设置打印自动宽度为False来切换自动宽度。 你可以通过分别设置打印列表头和打印总摘要属性为false来从打印视图上移除头部和底部 每一个表格打印部分的外观可以被重定义。因此,你能使用PrintHeaderTemplate 属性来设置自定义表头。 [XML] <dxg:GridControl.Resources> <DataTemplate x:Key="CustomPrintHeaderTemplate"> <Grid> <Rectangle RadiusX="5" RadiusY="5" Fill="Red" dxp:ExportSettings.TargetType="Image"/> <dxe:TextEdit Text="Custom header template" IsPrintingMode="True" Width="{Binding Path=Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" FontSize="20"/> </Grid> </DataTemplate> you </dxg:GridControl.Resources> <dxg:GridControl.View> <dxg:TableView PrintHeaderTemplate="{StaticResource CustomPrintHeaderTemplate}"/> </dxg:GridControl.View> 如果你想获取表头模板的 column headers文本,你可以使用以下的绑定声明: [XML] <dxe:TextEdit Text="{Binding Path=Content.View.DataControl.Columns[ColumnName].HeaderCaption}"/> 注意:被放置在表头模板中的TextEdit 拥有一个设置为true的 IsPrintMode属性,Rectangle控件有一个ExportSettings.TargetType。打印模板中所使用的所有控件必须被调整 以便打印。因此,任何从BaseEdit继承的控件都必须将IsPrintingMode属性设置为true。 其他的每个控件必须通过ExportSettings 属性来调节打印。因此,它必须要提供ExportSettings.TargetType属性值。这个属性被定义在 xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing" 命名空间中,并指定如何利用打印系统来利用该控件。 例如, 如果你想打印TextBlock, 必须将ExportSettings.TargetType指定为文本,这样TextBlock才会被打印。如果你想设置一些控件的背景和前景,你应该分 别设置ExportSettings.Background和ExportSettings.Foreground。 [XML] <TextBlock Text="Textblock text" Margin="10"Foreground="Red"dxp:ExportSettings.TargetType="Text"dxp:ExportSettings.Background="White"dxp:ExportSettings.Foreground="Red"/> 形状和复合控件可以作为图形导出: [XML] <Ellipse Fill="Yellow" Width="15" Height="15"dxp:ExportSettings.TargetType="Image"dxp:ExportSettings.Background="Transparent"/> 如何你的打印模板内有一些面板,你应该在面板中设置ExportSettings.TargetType属性,以便打印的子系统处理子元素。 [XML] <StackPanel Orientation="Horizontal"dxp:ExportSettings.TargetType="Panel"><TextBlock Text="Property: " Margin="2" dxp:ExportSettings.TargetType="Text"/><TextBlock Text="Value" Margin="2" dxp:ExportSettings.TargetType="Text"/></StackPanel> 如果一个控件没有指定导出设置类型,控件将会被打印子系统忽视,它将会在打印文档中丢失。这也适用于在IsPrintingMode属性没有设置的编辑器中。 表格底部模板可以以它在头部模板中定义的方式来同样被定义。 [XML] <dxg:GridControl.Resources> <DataTemplate x:Key="CustomPrintFooterTemplate"> <dxe:TextEdit IsPrintingMode="True" Width="{Binding Path=Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" Text="{Binding Path=Path=Content.View.DataControl.Columns[ColumnName].TotalSummaryText, Mode=OneWay}" /> </DataTemplate> </dxg:GridControl.Resources> PrintRowTemplate属性定义了一个用于显示每一行表格的模板。在这里你可以放置你的行单元值去显示一个行内容。模板的 DataContext.Content属性中有一个RowData类对象。为了简化针对在这个模板上行单元值的绑定表达式 ,你可以通过以下的代码来定义模板布局: [XML] <DataTemplate x:Key="CustomPrintRowTemplate"> <ContentControl Foreground="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}"> <Grid DataContext="{Binding DataContext.Content.Row, RelativeSource={RelativeSource TemplatedParent}}" Width="{Binding Path=DataContext.Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth, ElementName=contentControl}" > <Rectangle RadiusX="5" RadiusY="5" Fill="Red" dxp:ExportSettings.TargetType="Image"/> <dxe:ImageEdit Source="{Binding Path=Photo}" IsPrintingMode="True"/> <dxe:TextEdit EditValue="{Binding FirstName}" IsPrintingMode="True"/> </Grid> </ContentControl> </DataTemplate>

(0)

相关推荐

  • BarTender条码打印怎么设置秤显示?

    有关BarTender 2016表单中的称显示,前面都给大家介绍过了,包括秤显示属性设置,链接数据源属性设置等等.本文,将以图文并茂的方式,教大家如何为称重设备设置秤显示控件.我们打开BarTende ...

  • 如何更改迷你飞信的外观

    在迷你飞信主界面上,点击更改外观图标,弹出更改外观窗口。选择喜欢的颜色作为外观颜色,拖动透明度滑块调整透明度,即可自定义您的迷你飞信外观。

  • win8.1系统怎么用打印机打印非标准的纸张?

    有的时候我们要将内容打印到非标准的纸张上,在word中可以进行自定义设置来规范打印的内容,但是在execl中呢就没有这个功能了。这个时候呢要怎么解决呢?如果你的打印机提供自定义打印设置起来也很简单。这 ...

  • excel中打印的时候如何调整页面内容

    设置打印区域: 1.页面布局-打印区域-设置打印区域,设置后不会有大片空白及显示没必要的内容 2.打印-页面设置-缩放-调整为一页宽一页高即可. excel打印区域,显示自定义页码 打印的表格不需要从 ...

  • UI设计师必读!iOS 10 人机界面设计指南 (3)

    小编:iOS 10人机界面设计指南中文版来了,感谢译者@喵大神经. iOS10发布了,苹果遵循了一切从简但又增加了一些提升用户体验的功能,比如向开发者开放了更多接口,设计者又如何跟随iOS的步伐做好产 ...

  • 爱普生针式打印机如何正确设置连续打印纸?

    一、故障现象 使用单页纸打印正常,但连续纸无法打印。 具体现象:发送作业后,打印机鸣叫两声、暂停灯与缺纸灯常亮、纸张来源从拖纸器跳到手动进纸/单页纸槽。 二、原因分析: 爱普生针式打印机可通过驱动程序 ...

  • 页面视图中添加Word多页显示按钮

    Word多页显示按钮一般只有在打印预览状态下才能找到,用户可以通过自定义工具栏的方法将Word多页显示按钮添加到常用工具栏上,从而实现在页面视图中使用Word多页显示按钮的目的. 操作步骤如下所述: ...

  • 百度脑图如何使用?

    百度脑图如何使用?

  • Ubuntu怎么安装轻量级的LXDE桌面

    Ubuntu怎么安装轻量级的LXDE桌面