当前位置: 首页 > news >正文

wordpress 仿站工具短信营销

wordpress 仿站工具,短信营销,今日财经新闻,数字营销策划公司当我们想打印控件内容时&#xff0c;如一个Grid中的内容&#xff0c;可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下&#xff1a; XAML代码如下 <Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition Width"300"…

当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现

界面如下:

XAML代码如下

<Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition Width="300"/></Grid.ColumnDefinitions><Grid Grid.Column="0"><Grid Width="800" Name="grid1"><TextBlock TextWrapping="Wrap" FontSize="15">Control authors who want to customize the arrange pass of layout processing should override this method. The implementation pattern should call M:System.Windows.UIElement.Arrange(System.Windows.Rect) on each visible child element, and pass the final desired size for each child element as the finalRect parameter. Parent elements should call M:System.Windows.UIElement.Arrange(System.Windows.Rect) on each child, otherwise the child elements will not be rendered.
Many derived classes offer implementations of this method. Prominent ones include: M:System.Windows.Window.ArrangeOverride(System.Windows.Size), M:System.Windows.Controls.Page.ArrangeOverride(System.Windows.Size) and M:System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size).</TextBlock></Grid></Grid><Grid Grid.Column="1"><Button Height="30" VerticalAlignment="Top" Click="Button_Click">打印</Button></Grid></Grid>

当我们点击按钮时,进行打印

按钮事件:

           PrintDialog pd = new PrintDialog();if (pd.ShowDialog() == true){pd.PrintVisual(this.grid1, "");}

这时我们会发现,虽然 打印的内容是指定的,但打印的大小却是整个窗体的大小,而不仅仅是指定的区域大小。

然后我们就需要用到UIElement的Arrange 方法

MSDN上的解释是

定位子元素,并确定 UIElement 的大小。 父元素从它们的 ArrangeCore 实现(或者是 WPF 框架级别等效项)调用此方法,以便形成递归布局更新。此方法产生第二次布局更新。

修改后的代码如下:

1 if (pd.ShowDialog() == true)
2             {                
3                 this.grid1.Arrange(new Rect(new Size(grid1.ActualWidth, grid1.ActualHeight)));
4                 pd.PrintVisual(this.grid1, "");               
5             }

这样操作以后,打印的大小不再是整 个窗体的大小了,但打印完之后 ,控件 的位置却发生了变化 ,这时候我们只需要再调用一次Arrange方法,将它放回原来的位置就行了

 if (pd.ShowDialog() == true){               Window window = Window.GetWindow(grid1);Point point = grid1.TransformToAncestor(window).Transform(new Point(0, 0));//获取当前控件 的坐标this.grid1.Measure(new Size(grid1.ActualWidth,grid1.ActualHeight));this.grid1.Arrange(new Rect(new Size(grid1.ActualWidth, grid1.ActualHeight)));pd.PrintVisual(this.grid1, "");this.grid1.Arrange(new Rect(point.X, point.Y, grid1.ActualWidth, grid1.ActualHeight));//设置为原来的位置}

这样就可以打印控件 内容了。

如果 想对打印机进行设置,可以查找 WPF PrintDialog的使用方法,下面是简单的设置

                 PrintTicket pt = new PrintTicket();PageMediaSize p = new PageMediaSize(PageMediaSizeName.ISOA4);//pt.PageBorderless = PageBorderless.Unknown;pt.PageMediaSize = p;//pt.PageOrientation = PageOrientation.Portrait;pd.PrintTicket = pt;

http://www.mmbaike.com/news/80475.html

相关文章:

  • 绿色大气网站模板济南全网推广
  • 建筑案例的网站有哪些方面在线注册网站
  • 做外贸纱线用什么网站苏州seo优化公司
  • wordpress 不用主题什么是seo
  • 网站建设推广语网络营销有什么方式
  • 网站开发页面百度关键词搜索热度
  • 做独立外贸网站流程最好的网站推广软件
  • 网站域名详解百度邮箱注册入口
  • 邯郸市有搞网站服服务的吗运营推广公司
  • 怎么利用网站做外链接太原seo管理
  • 做个有用网站广州seo优化公司
  • 网站建设主要学什么做百度推广的网络公司
  • 网站建设的实验原理下店拓客团队
  • 做ebay需要的图片外链网站优化大师网页版
  • dede网站演示seo入门到精通
  • dw做网站字体做多大seo教学网站
  • 做网站温州广告营销策划方案模板
  • 公司做网站留言板福州网站优化公司
  • 做理财的网站seo搜索引擎优化步骤
  • 住房和城乡建设局win10优化大师官网
  • 网站源码下载pdf文件app推广是什么意思
  • 公司网站维护由那个部门做2345网址导航
  • 外贸网站建站注意事项营销手段有哪些
  • 武汉手机网站百度推广登录网址
  • 学网站开发要学什么会计培训班要多少钱
  • 网站建设画册第一营销网
  • 为赌博网站做代理被判缓刑网站建站开发
  • 网站建设 开发人一丶一一人一一网页模板下载
  • 无锡网站开发公司seo搜索优化是什么
  • 游戏开发软件有哪些广州seo营销培训