我看到這是一個老問題,但在谷歌上搜索了同樣的事情,我在此絆倒了。也許其他人可以在未來找到這個有用的答案。至少有一種相當可接受的方法來解決這個問題,這也很簡單:通過綁定和使用容器TabControl
爲每個視圖關聯到每個功能區選項卡。
- 將一個色帶和一個
TabControl
堆疊在一起。
- 將選項卡控件的
SelectedIndex
屬性綁定到功能區的SelectedTabIndex
。
- 隱藏選項卡控件中所有選項卡項的標題。
代碼:
<fluent:RibbonWindow
x:Class="FluentExample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:fluent="clr-namespace:Fluent;assembly=Fluent"
>
<DockPanel LastChildFill="True">
<fluent:Ribbon x:Name="_ribbon" DockPanel.Dock="Top">
<!-- Ribbon tabs -->
<fluent:RibbonTabItem Header="Tab #1" />
<fluent:RibbonTabItem Header="Tab #2" />
</fluent:Ribbon>
<!-- Views container -->
<TabControl
DockPanel.Dock="Bottom"
SelectedIndex="{Binding ElementName=_ribbon, Path=SelectedTabIndex}"
>
<!-- Hide tab items headers -->
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<!-- Individual content for each tab go here -->
<TabItem><TextBlock Text="First Content View (#1)" /></TabItem>
<TabItem><TextBlock Text="Second Content View (#2)" /></TabItem>
</TabControl>
</DockPanel>
</fluent:RibbonWindow>