WPF tabControl中的其他未选中tab页的初始化

C#菜鸟June 2019-05-06 09:29:21
tabcontrol共有三个页面,每个页面上都有一个Canvas。现在要求tabcontrol在切换时,触发事件SelectionChanged。在SelectionChanged事件中Canvas会根据自身的大小绘图。
但是在首次切换时,由于别的Tab页面上的Canvas还没有呈现,所以别的页面中的Canvas.Width和Canvas.Height总是零。这样画图的时候就会有问题。请问如何解决这个问题?
...全文
426 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
C#菜鸟June 2019-05-06
  • 打赏
  • 举报
回复
引用 4 楼 exception92 的回复:
[quote=引用 2 楼 june905206961 的回复:]
[quote=引用 1 楼 exception92 的回复:]
Canvas会根据自身的大小绘图
-》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。

一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem
[/quote]
写个Converter转换类,计算一下Canvas.Width = tabitem.Width/2;即可。[/quote]
这个canvas放到DocKpanel中的,Canvas的下面还有水平滚动条,右边有垂直滚动条,当图像放大到一定程度会显示滚动条,滚动条也是要占控件的,所以没有办法将tabItem一分为2
exception92 2019-05-06
  • 打赏
  • 举报
回复
引用 2 楼 june905206961 的回复:
[quote=引用 1 楼 exception92 的回复:] Canvas会根据自身的大小绘图 -》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。
一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem [/quote] 写个Converter转换类,计算一下Canvas.Width = tabitem.Width/2;即可。
C#菜鸟June 2019-05-06
  • 打赏
  • 举报
回复
引用 1 楼 exception92 的回复:
Canvas会根据自身的大小绘图
-》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。

C#菜鸟June 2019-05-06
  • 打赏
  • 举报
回复
引用 1 楼 exception92 的回复:
Canvas会根据自身的大小绘图
-》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。

一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem
exception92 2019-05-06
  • 打赏
  • 举报
回复
Canvas会根据自身的大小绘图 -》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧