wpf的canvas打印问题 15

首先有一个叫做test123的xaml里面主要有一个label<Grid><CanvasHeight="212"HorizontalAlignment="Left"Mar... 首先有一个叫做test123的xaml
里面主要有一个label

<Grid>
<Canvas Height="212" HorizontalAlignment="Left" Margin="28,47,0,0" Name="Canvas1" VerticalAlignment="Top" Width="231">
<Label Canvas.Left="50" Canvas.Top="55" Content="Label" Height="54" Name="Label1" Width="91" />
</Canvas>
</Grid>
然后有一个按钮,
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Label1.Content = "123"
Dim pdialog As New PrintDialog
pdialog.PrintVisual(Canvas1, "hello123")
End Sub

设计如下:想按下按钮之后打印canvas1里面的label,理想应该是“123”,但实际打印出来的是“Label”,屏幕显示的是“123”。不知道修改label1.content的执行为何在打印之后了。用Canvas1.UpdateLayout()只可以打印一次,但是再点打印就打不来了,因为有可能要批打印,所以Canvas1会清空,再重新加载新的数据,求解
展开
 我来答
Mickal小米
2013-04-18 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1781万
展开全部
那你label的content为何不放在xaml中设置?
更多追问追答
追问
因为要打印的内容是动态加载的,要从数据库里面读出来的啊。
追答
那还有一个动态赋值的方法,不知道在你的打印方法中可行不可行
就是后台先定义个只有string类型属性的类
pubic class strObject
{ public string str;}
实例化该实体并赋值到label的datacontext属性
label.datacontext = new strObject();
前台绑定:
<label content ="{Binding str}"
然后后台给str赋值。
不要忘了给str实现Inotify接口喔
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式