wpf - 在设置 AvalonDock 文档选项卡面板的样式和编辑时遇到问题

标签 wpf avalondock

我正在尝试弄清楚如何使 AvalonDock 的 VS2010 风格的功能更像 VS2010。我遇到的问题是,当选项卡数量超出标题区域的容纳范围时,不会向用户表明存在更多选项卡。

我认为选项卡标题只是被剪切并且不可见。我有一个VS2010样式的自定义副本,并转到DocumentPane样式:

<!--DocumentPane-->
<Style x:Key="{x:Type ad:DocumentPane}" TargetType="{x:Type ad:DocumentPane}"> ...

并发现选项卡标题(我认为)为“ad:DocumentTabPanel”。我将其包装在 ScrollViewer 中:

<ScrollViewer Style="{StaticResource ResourceKey=TabHeaderScrollViewer}"  CanContentScroll="True">

    <ad:DocumentTabPanel 
        x:Name="paneTabsPanel" 
        Panel.ZIndex ="1" 
        IsItemsHost="True" 
        TabItemStyle="{StaticResource CustomDocumentTabItemStyle}"/>
</ScrollViewer>

滚动查看器设置为具有自定义样式:

<Style x:Key="TabHeaderScrollViewer" TargetType="ScrollViewer">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ScrollViewer">
                <Grid Background="{TemplateBinding Background}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>

                    <RepeatButton Command="ScrollBar.PageLeftCommand"></RepeatButton>
                    <ScrollContentPresenter Grid.Column="1" 
                                                x:Name="ScrollContentPresenter"
                                                Cursor="{TemplateBinding Cursor}"
                                                Margin="{TemplateBinding Padding}"
                                                ContentTemplate="{TemplateBinding ContentTemplate}"/>

                        <RepeatButton Grid.Column="2" Command="ScrollBar.PageRightCommand"></RepeatButton>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我遇到的问题是,即使我加载大量选项卡,滚动也不起作用。我不认为这对我的造型有问题。选项卡标题似乎不在 VisualTree 中或具有折叠的可见性。我已经浏览 AvalonDock 源代码有一段时间了,但我看不到 header 是如何隐藏的。

我已经不得不对一些 AvalonDock 类进行子类化,因为我需要它们的附加属性。

有人可以解释/帮助我想出滚动选项卡的解决方案吗?

最佳答案

问题很简单就解决了。我必须设置 Horizo​​ntalScrollBarVisibility="Auto"。我检查了http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.horizontalscrollbarvisibility.aspx查看此属性的默认值是什么,但在此处或 ScrollViewer 页面上没有看到该值。我认为它默认为“隐藏”。

无论如何,一旦设置为“自动”,重复按钮仅在选项卡溢出时显示。

关于wpf - 在设置 AvalonDock 文档选项卡面板的样式和编辑时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881709/

相关文章:

wpf - AvalonDoc 2 垂直和水平方向

c# - 带 Prism 区域适配器的 AvalonDock

c# - 如何使 WinForms 表单在 AvalonDock 中作为 DockableContent 工作?

c# - 覆盖 AvalonDock 悬浮窗;忽略 zIndex

c# - 与 MVVM 的用户界面交互

.net - 是否有(免费)用于3D WPF对象的工具或库?

c# - WPF C# 将音频文件复制到剪贴板

c# - WPF - 为什么没有 "OnDataContextChanged"可覆盖方法?

.net - WPF 数据网格文本列中的绑定(bind)