【发布时间】:2019-06-17 09:04:26
【问题描述】:
我对 WPF 很陌生,但我正在尝试混合选项卡控件和扩展器的功能。
我希望能够按下标题中具有扩展器的每个选项卡项,这将扩展下面的内容。 几乎就像一个普通的选项卡,除了我现在应该能够按下该选项卡/展开器并且选项卡控件应该能够展开/折叠,只显示选项卡标题。
我无法让展开/折叠功能发挥作用,并且 Tab 控件将始终像没有展开器的普通控件一样保持打开状态。
目前我的 XAML 看起来像这样:
<TabControl>
<TabItem >
<TabItem.Header>
<Expander Header="One" IsHitTestVisible="False"
IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" />
</TabItem.Header>
<TextBlock Background="Red"/>
</TabItem>
<TabItem>
<TabItem.Header>
<Expander Header="Two" IsHitTestVisible="False"
IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" />
</TabItem.Header>
<TextBlock Background="Aqua" />
</TabItem>
</TabControl>
如果我应该完全以另一种方式获得整体功能,请务必指出那个方向。
【问题讨论】:
-
您可能需要为您的 TabControl 和标题自定义模板。查看默认模板并进行相应修改通常是个好主意。
-
所以如果你改变标签,你需要设置
IsExpanded= false我对吗? -
@Avinash Reddy - 是的。我应该能够展开/折叠整个选项卡控件并在展开时显示特定选项卡的内容。举个例子:选项卡控件一开始是折叠的,您只能看到 2 个选项卡项及其名称和扩展器按钮。我按下第一个选项卡项目(扩展器),整个选项卡控件展开,显示我在该选项卡内容区域中选择的任何内容。从这里我应该能够做两件事。再次按 Tab 1 可折叠整个 Tab Control,或按 Tab 2 并显示 Tab 2 中的内容。希望这是有道理的。