wpf - WPF:TabControl 和 TabITem 的自定义样式 - 如果所有选项卡都折叠,如何使选项卡标题折叠
问题描述
我一直在为我正在设计的程序制作 TabControls 和 TabItems 的自定义样式,并且想知道是否可以拥有它,以便TabControl 中的所有TabItems 都具有该属性Visibility="Collapsed"
,TabControl 的 TabPanel(显示选项卡的位置)可以折叠或以其他方式完全隐藏。这当然是 TabControls 中的默认行为,但由于它们使用的是自定义样式(因此它们不再丑陋,并且与应用程序的主题一致),这种行为似乎已经消失了(可能是因为到目前为止我将高度属性设置为硬编码值)...这使我进入下一个点,Tabpanel的高度 - 当可见标签时 - 应该比选项卡的高度高几个像素。当然,这使得使用边距变得困难,因为如果所有 TabItem 都折叠,则应该删除额外的高度。
总而言之,我想要做的是:
- 当任何选项卡未折叠
时的TabControl :
- TabPanel 的高度为 26px(比 TabItems 高,后者为 18px 高)
- 折叠
所有选项卡时的 TabControl :
- TabPanel 完全折叠/隐藏,高度为零
非常感谢你们中的任何一个可以帮助我的很棒的人。我已经连续使用 WPF 足够长的时间来煎熬我的大脑,并且这个问题的简单解决方案让我无法理解(我需要休息一下!)
解决方案
好吧,没关系!当您在某件事上花费太长时间时,就会发生这种情况。
解决方案是给 TabItems 一个边距,使其上方有额外的高度,然后在 TabControl 的 ControlTemplate 内将 TabPanel 的 Height 属性设置为 Auto。呸!
推荐阅读
- powershell - 日志进度问题
- javascript - 纯 JS 和正则表达式获得第一个日期时间
- swift - 删除核心数据对象时关闭导航视图
- c++ - 如何在不使用文件扩展名的情况下使用命令行参数在 C++ 中打开文本文件?
- ios - 在为 JSON 函数初始化之前使用常量 | 迅速
- python - python库从命令行加载并正常工作,但如果我尝试在启动时运行,则会出现“ImportError:No module”
- mysql - 如果它存在于另一个表中,则选择表中的值
- excel - 根据单元格值将文本框添加到用户窗体框架
- python - 如何基于包含值的列作为列表连接数据框
- openstreetmap - 在给定的边界框中使用 Overpass API 将交叉口过滤为(4 路交叉口、T 形交叉口和其他)