想问下,TabControl控件中,单击每个TabItem时,TabItem里面的内容到底是哪个属性变化了,使得切换后,前个TabItem中的内容不可见呢。 我做了实验,
    <TabControl Name="tab">
        <TabItem Header="aaa" Name="aa">
            <TextBlock Name="cc"></TextBlock>
        </TabItem>
        <TabItem Header="bbb" Name="bb">
            <TextBlock Name="dd"></TextBlock>
        </TabItem>
    </TabControl>我本想,大概是单击bb时,cc的Visibility为Hidden,结果竟然是Visible。两个TabItem怎么切换,cc和dd的Visibility都是Visible。不知道到底是什么原理,虽然TabItem里面的内容是可见的,但是屏幕上就是看不见的。请大侠们帮忙解惑啊,,

解决方案 »

  1.   

    WPF?应该是类似图层的设计思路,切换时改变图层顺序
      

  2.   

    恩,是WPF的东东,我就是想搞明白这个切换原理,图层顺序,您确定吗,但为什么TabControl或是TabItem中都木有图层这个属性啊,这个属性还是很有用的,我现在想把一个浮动小窗口的可见性绑定到TabItem中的某个控件,就是TabItem中的这个控件显示,浮动小窗口就显示,否则就不显示,如果我采用绑定的方法,就不需要到代码里去维护了,(其中浮动小窗口是个Window,必须的),所以就特想逮着这个我不知道的属性或是什么东东,让我来绑定
      

  3.   

    应该有ItemIndex或者SelectedItem之类的属性,判断当前TabItem,满足条件就显示,不满足就不显示绑定就是方便操作的,不要为了绑定而绑定,只要实现功能即可。
      

  4.   

    你可以将浮动窗口与选项卡的焦点或选项值绑定,
    如果某项是焦点就显示,否则隐藏
    焦点我记得有个IsFocused
      

  5.   

    谢谢楼上的两位,浮动窗口我是作为TabItem里面的某个控件AA的变量封装在一个类里面的,所以想把这个浮动窗口和控件AA的某个属性绑定(就是寻找的这个属性),这样的话我在外面用就不用维护了,设想一下,如果能这样实现,真的会很简单。而我外面用的地方很多,比如要轮跳、要改变浮动窗口的大小,填充色等等,而我就想把这一切都封装到一个类里面,实际上也都这样做了,就欠缺说怎么绑定浮动窗口的显示,能让某个TabItem切换时,跟随控件的可见性绑定,窗口也随之能可见或不可见。
      

  6.   

    唉,如果能弄清楚TabControl的切换原理,貌似就可以知道怎么绑定,实在不行的话我只能在选项卡改变的事件里面写了,不过这样的话就麻烦很多了,
      

  7.   

    //选项卡切换
            private void tabManagerLog_SelectedIndexChanged(object sender, EventArgs e)
            {   //tabLoginPage页
                if (tabManagerLog.SelectedTab == tabLoginPage)
                {
                    BindLoginLog();
                }//tabRechargePage页
                else if (tabManagerLog.SelectedTab == tabRechargePage)
                {
                    BindRechargeLog();
                }
                else
                {
                    BindMoneyChangeLog();
                }        }希望对你有所帮助
      

  8.   

     
     private void tabManagerLog_SelectedIndexChanged(object sender, EventArgs e)
            {
    if (SelectedIndex==2)//第三页
    {
    form2.Show();
    }
    else
    {
    form2.close();
    }
    上面的只是一个方法,具体浮动窗体怎么实例化你应只道