我试图在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。非常感谢你的建议。
答案 0 :(得分:2)
ItemsPanel需要在其中包含一个Panel作为根元素。你有一个ScrollViewer。如果要添加ScrollViewer,则必须创建一个自定义ControlTemplate,它使用ScrollViewer包装ItemsPresenter。 ItemsPresenter将显示ItemsPanel。
您应该能够从Silverlight Toolkit源获取默认的Style和ControlTemplate,并根据您的需要进行调整。然后在您的应用程序资源中包含您的修改版本,或者将其明确应用于单个TabControls。