如何使WPF选项卡控件在Windows窗体(默认)中显示为MultiLine=false
在Windows窗体中,选项卡控件的默认行为是,如果选项卡占用太多空间(MultiLine=false),则会将其溢出到可滚动区域 在WPF中实现这种行为的最佳方法是什么 更新 我试图用如何使WPF选项卡控件在Windows窗体(默认)中显示为MultiLine=false,wpf,xaml,tabcontrol,Wpf,Xaml,Tabcontrol,在Windows窗体中,选项卡控件的默认行为是,如果选项卡占用太多空间(MultiLine=false),则会将其溢出到可滚动区域 在WPF中实现这种行为的最佳方法是什么 更新 我试图用TabControl.ItemsPanel找到一个解决方案,但似乎我在那里放的任何东西都被完全忽略了,因此,出于这个原因,我费了很大的劲,从TabControl.Template开始,这让人难以置信,如果它是正确的方法,我们必须这样做 我对这个问题的初步解决方案是这样的,远远不够完整 <TabControl
TabControl.ItemsPanel
找到一个解决方案,但似乎我在那里放的任何东西都被完全忽略了,因此,出于这个原因,我费了很大的劲,从TabControl.Template
开始,这让人难以置信,如果它是正确的方法,我们必须这样做
我对这个问题的初步解决方案是这样的,远远不够完整
<TabControl>
<TabControl.Template>
<ControlTemplate TargetType="{x:Type TabControl}">
<DockPanel>
<ScrollViewer DockPanel.Dock="Top"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled">
<StackPanel Orientation="Horizontal" IsItemsHost="True" />
</ScrollViewer>
<ContentPresenter ContentSource="SelectedContent" />
</DockPanel>
</ControlTemplate>
</TabControl.Template>
<TabItem Header="One">First</TabItem>
<TabItem Header="Two">Second</TabItem>
<TabItem Header="Three">Third</TabItem>
<TabItem Header="Four">Fourth</TabItem>
<TabItem Header="Five">Fifth</TabItem>
</TabControl>
弗斯特
第二
第三
第四
第五
最简单的选项是在选项卡控件上设置ItemsPanelTemplate。我认为默认值是WrapPanel,因此是多行行为。
例如,将其更改为StackPanel,并可能添加一个ScrollViewer
类似这样的内容(只需在不使用VS的情况下编写此代码)
希望这有点帮助…替换模板的解决方案似乎是最好的方法。TabItems的默认面板是一个TabPanel,我看不到任何类似于“应换行”属性的内容 本文档包含一个用不同的TabPanel替换TabControl模板的示例:
几年前我也遇到过同样的问题,我的解决方案是限制页眉和包含页眉的面板的大小,当然你需要像开始时那样制作自己的模板,而且我还需要实现一些滚动支持,所以我在滚动查看器的左右两侧放置了两个重复按钮 我的灵感来自于wpf中名为IE tabs的代码项目。
它与wpf一样古老,效果很好在制作选项卡控件时,选项卡沿左侧垂直堆叠,我为您找到了以下解决方案:
令人印象深刻的东西 我知道这是一篇比较老的帖子,但如果其他人在互联网上搜索这篇文章,我想补充一点
如果将tabpanel的宽度设置为更大的值(假设这不是允许用户继续在其中添加其他选项卡的tabpanel)。如果您让用户向选项卡面板添加新选项卡,则需要添加一个滚动条。Hi ppx,这与我采取的方法几乎相同,虽然我在模板中添加的任何内容都不会产生影响,但结果仍然相同,因此现在我决定尝试替换整个TabControl模板,然而,这并不是我想要做的,使用ItemsPanelTemplate肯定有某种更简单的解决方案。我将在一秒钟内发布到目前为止我一直在尝试的内容。我刚刚意识到你发布了我刚刚发现的同一个链接,这是一篇很棒的文章,感谢你的回答,但愿我能在三月份看到:)
<TabControl>
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
</TabControl>