zoukankan      html  css  js  c++  java
  • WPF TabItem.Collapse 的问题

    WPF TabItem.Collapse 的问题

    运行环境:Window7 64bit,.NetFramework4.61,C# 6.0; 编者:乌龙哈里 2017-02-16

    感谢 LICEcap 的作者,弄了个很小巧好用的桌面录制gif软件。


    我用了一个 WPF 的 TabControl 的控件,下面弄了两个 TabItem,设想是点击一个按钮后,出现一个,隐藏另外一个,结果发现 TabItem 里面的内容 没有显示。上例子:

    xaml:

    <Window x:Class="学习WpfTabItem.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            mc:Ignorable="d"
            Title="MainWindow" Height="200" Width="200" >
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="32"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <ToolBar Grid.Row="0">
                <Button Name="btn1" Content="显示1" Click="btn1_Click"/>
                <Button Name="btn2" Content="显示2" Click="btn2_Click"/>
            </ToolBar>
            <TabControl Name="tbl" Grid.Row="1" >
                <TabItem Name="tbm1" Header="1" >
                    <TextBlock Text="1111" Visibility="{Binding Path=Visibility,ElementName=tbm1}"/>
                </TabItem>
                <TabItem Name="tbm2" Header="2" >
                    <TextBlock Text="22222" Visibility="{Binding Path=Visibility,ElementName=tbm2}"/>
                </TabItem>
            </TabControl>
        </Grid>
    </Window>

    后端 c# 代码:

    using System.Windows;

    namespace 学习WpfTabItem
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
            private void btn1_Click(object sender, RoutedEventArgs e)
            {
                if (tbm2.Visibility == Visibility.Visible)
                {
                    tbm2.Visibility = Visibility.Collapsed;
                }
                tbm1.Visibility = Visibility.Visible;
            }
            private void btn2_Click(object sender, RoutedEventArgs e)
            {
                if (tbm1.Visibility == Visibility.Visible)
                {
                    tbm1.Visibility = Visibility.Collapsed;
                }
                tbm2.Visibility = Visibility.Visible;
            }
        }
    }

    TabItem 里面两个 TextBlock 的显示属性是我看见不能显示,专门绑定的,去掉绑定,tbm1 的 TextBlock 直接一直显示。看看上面的程序运行结果。

    上网查了一下,都没有很好的解决办法,有人更说是 bug。 看来只有走后台手工代码描绘 tabitem 的路了。下来学习这个。

  • 相关阅读:
    【目标检测】RCNN算法详解
    自己搭建传统ocr识别项目学习
    015. asp.net实现简易聊天室
    014. asp.net实现记住密码的功能
    013. asp.net统计网站访问人数
    012. asp.net生成验证码图片(汉字示例/字母+数字)
    011. asp.net内置对象
    010. 使用.net框架提供的属性
    001. 使用ssh连接不上centos 6.5的解决方法及其解决中文乱码
    009. C#中的WebBrowser控件的属性、方法及操作演示代码(转)
  • 原文地址:https://www.cnblogs.com/leemano/p/6407312.html
Copyright © 2011-2022 走看看