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