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会清空,再重新加载新的数据,求解 展开
里面主要有一个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会清空,再重新加载新的数据,求解 展开
1个回答
展开全部
那你label的content为何不放在xaml中设置?
更多追问追答
追问
因为要打印的内容是动态加载的,要从数据库里面读出来的啊。
追答
那还有一个动态赋值的方法,不知道在你的打印方法中可行不可行
就是后台先定义个只有string类型属性的类
pubic class strObject
{ public string str;}
实例化该实体并赋值到label的datacontext属性
label.datacontext = new strObject();
前台绑定:
<label content ="{Binding str}"
然后后台给str赋值。
不要忘了给str实现Inotify接口喔
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询