WPF TabControl MVVM:TabItems溢出
我目前正在为AutoCAD开发一个插件,脚本语言是VB.net 基本上我有一个用户控件,其中包含一个TabControl,每个TabItem都是一个对象,它只包含TabItem.Header和TabItem.Content定义。选项卡项是通过xml文件动态生成的。当我使用MVVM时,这一切都存储在一个ObservableCollection中,该集合绑定到TabControl项 由于我正在和MVVM打交道,而且我对WPF还比较陌生,所以我需要一些关于以下任务的指导:到目前为止,一切都很好,但我唯一的问题是,我希望在可见选项卡项的末尾有一个小按钮。当我点击它时,我可以切换所有的标签,不管它们是否可见 为了更好地理解,这应该是期望的结果: 我只想简单解释一下如何实现这一点(网络上的所有示例对我来说都相当复杂)。我用ScrollViewer试过了,但效果不好。以下是当前代码: 选项卡控件模板:WPF TabControl MVVM:TabItems溢出,wpf,vb.net,xaml,mvvm,Wpf,Vb.net,Xaml,Mvvm,我目前正在为AutoCAD开发一个插件,脚本语言是VB.net 基本上我有一个用户控件,其中包含一个TabControl,每个TabItem都是一个对象,它只包含TabItem.Header和TabItem.Content定义。选项卡项是通过xml文件动态生成的。当我使用MVVM时,这一切都存储在一个ObservableCollection中,该集合绑定到TabControl项 由于我正在和MVVM打交道,而且我对WPF还比较陌生,所以我需要一些关于以下任务的指导:到目前为止,一切都很好,但我唯
主窗口XAML摘录:
选项卡项类:
Private Property\u头作为字符串
作为字符串的公共属性头
得到
返回头
结束
设置(值为字符串)
_标题=值
端集
端属性
私有属性\u内容作为字符串
作为字符串的公共属性内容
得到
返回内容
结束
设置(值为字符串)
_内容=价值
端集
端属性
提前谢谢 我自己解决了这个问题。以下是模板代码的工作件:
<Style x:Key="TabControl"
TargetType="{x:Type TabControl}">
<Setter Property="Background"
Value="{StaticResource TabBackground}">
</Setter>
<Setter Property="BorderBrush"
Value="{StaticResource TabItemActiveBorder}">
</Setter>
<Setter Property="BorderThickness"
Value="0,1,1,0">
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden"
Grid.Column="1"
Grid.Row="0">
<TabPanel x:Name="HeaderPanel"
Panel.ZIndex="1"
Margin="0,2,2,2"
IsItemsHost="True"
Background="Transparent" />
</ScrollViewer>
<ContentPresenter x:Name="PART_SelectedContentHost"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Margin="{TemplateBinding Padding}"
ContentSource="SelectedContent" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>