将选项卡 headers 放在自己的网格行中?
Put tab headers in their own grid row?
我在网格中有一个 TabControl。有没有办法分配选项卡 "headers area" 来填充特定的网格行,并分配选项卡内容区域来填充另一个?
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TabControl x:Name="tabControl">
<TabItem Header="TabItem">
</TabItem>
<TabItem Header="TabItem">
</TabItem>
</TabControl>
</Grid>
就像@xtreampb 指出的那样,如果您真的想将功能分离出来,则需要进行一些修改。
但是,如果您不想深入了解控件模板,您确实有多种选择可以完成此操作。例如,上次我不得不为这样的请求提供便利时,我只有大约 15 分钟的时间来完成。所以我最终做的就像下面显示的概念,只是做了一个 RadioButton
样式来匹配他们想要的 "Tabs" 的设计。
快速无痛(不到 5 分钟)并且达到了当时的目的。此外,该应用程序非常小,所有者只关心他们想要的设计。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="20">
<RadioButton GroupName="Blah" Content="Blah1"
IsChecked="{Binding IsSelected, ElementName=Blah1}"/>
<RadioButton GroupName="Blah" Content="Blah2" Margin="10,0"
IsChecked="{Binding IsSelected, ElementName=Blah2}"/>
<RadioButton GroupName="Blah" Content="Blah3"
IsChecked="{Binding IsSelected, ElementName=Blah3}"/>
</StackPanel>
<TabControl Grid.Row="1">
<TabItem x:Name="Blah1" Visibility="Collapsed">
<TextBlock Text="Wow TAB 1 IsSelected!"/>
</TabItem>
<TabItem x:Name="Blah2" Visibility="Collapsed">
<TextBlock Text="Wow TAB 2 IsSelected!"/>
</TabItem>
<TabItem x:Name="Blah3" Visibility="Collapsed">
<TextBlock Text="Wow TAB 3 IsSelected!"/>
</TabItem>
</TabControl>
</Grid>
希望这对您有所帮助,干杯!
我在网格中有一个 TabControl。有没有办法分配选项卡 "headers area" 来填充特定的网格行,并分配选项卡内容区域来填充另一个?
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TabControl x:Name="tabControl">
<TabItem Header="TabItem">
</TabItem>
<TabItem Header="TabItem">
</TabItem>
</TabControl>
</Grid>
就像@xtreampb 指出的那样,如果您真的想将功能分离出来,则需要进行一些修改。
但是,如果您不想深入了解控件模板,您确实有多种选择可以完成此操作。例如,上次我不得不为这样的请求提供便利时,我只有大约 15 分钟的时间来完成。所以我最终做的就像下面显示的概念,只是做了一个 RadioButton
样式来匹配他们想要的 "Tabs" 的设计。
快速无痛(不到 5 分钟)并且达到了当时的目的。此外,该应用程序非常小,所有者只关心他们想要的设计。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="20">
<RadioButton GroupName="Blah" Content="Blah1"
IsChecked="{Binding IsSelected, ElementName=Blah1}"/>
<RadioButton GroupName="Blah" Content="Blah2" Margin="10,0"
IsChecked="{Binding IsSelected, ElementName=Blah2}"/>
<RadioButton GroupName="Blah" Content="Blah3"
IsChecked="{Binding IsSelected, ElementName=Blah3}"/>
</StackPanel>
<TabControl Grid.Row="1">
<TabItem x:Name="Blah1" Visibility="Collapsed">
<TextBlock Text="Wow TAB 1 IsSelected!"/>
</TabItem>
<TabItem x:Name="Blah2" Visibility="Collapsed">
<TextBlock Text="Wow TAB 2 IsSelected!"/>
</TabItem>
<TabItem x:Name="Blah3" Visibility="Collapsed">
<TextBlock Text="Wow TAB 3 IsSelected!"/>
</TabItem>
</TabControl>
</Grid>
希望这对您有所帮助,干杯!