tabcontrol共有三个页面,每个页面上都有一个Canvas。现在要求tabcontrol在切换时,触发事件SelectionChanged。在SelectionChanged事件中Canvas会根据自身的大小绘图。
但是在首次切换时,由于别的Tab页面上的Canvas还没有呈现,所以别的页面中的Canvas.Width和Canvas.Height总是零。这样画图的时候就会有问题。请问如何解决这个问题?

解决方案 »

  1.   

    Canvas会根据自身的大小绘图
    -》首次切换时,将tabitem的w/h 绑定到Canvas的w/h上。
      

  2.   

    一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem
      

  3.   

    一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem

    写个Converter转换类,计算一下Canvas.Width = tabitem.Width/2;即可。
      

  4.   

    一个TabItem中有两个Canvas,如果把两个canvas的长度和高度都绑定到tabItem中,那canvas的大小就超出了tabItem了,canvas上绘制的图也会超出tabitem

    写个Converter转换类,计算一下Canvas.Width = tabitem.Width/2;即可。
    这个canvas放到DocKpanel中的,Canvas的下面还有水平滚动条,右边有垂直滚动条,当图像放大到一定程度会显示滚动条,滚动条也是要占控件的,所以没有办法将tabItem一分为2