4

我正在尝试覆盖 Silverlight 中 TabControl 的默认模板。我不想让标签在满时环绕,而是让用户可以滚动浏览它们,类似于 ListBox。然而,Silverlight 只是忽略了我在“ItemsPanelTemplate”中放入的所有内容并呈现默认值。以下是相关代码:

    <swc:TabControl Grid.Row="0" Grid.Column="1" Name="Tabs">
        <swc:TabControl.ItemsPanel>
            <ItemsPanelTemplate>
                <ScrollViewer>
                     <StackPanel Orientation="Horizontal" />
                </ScrollViewer>
            </ItemsPanelTemplate>
        </swc:TabControl.ItemsPanel>

即使我只是放入一个常规的 StackPanel,它仍然什么都不做。我将 Silverlight Toolkit 用于选项卡,因此我在网上找到的所有内容都仅适用于常规 WPF,不适用于 Silverlight。非常感谢大家的建议。

4

1 回答 1

2

ItemsPanel需要有一个 Panel 作为根元素你有一个 ScrollViewer。如果要添加 ScrollViewer,则必须创建一个自定义 ControlTemplate,将 ItemsPresenter 与 ScrollViewer 一起包装。ItemsPresenter 将显示 ItemsPanel。

您应该能够从 Silverlight Toolkit 源中获取默认样式和 ControlTemplate 并根据您的需要对其进行调整。然后将修改后的版本包含在您的应用程序资源中,或将其显式应用于各个 TabControl。

于 2011-04-06T20:30:00.317 回答