我想覆盖Silverlight中TabControl的默认模板。当它们满了时,我不想让标签环绕,我想让它能够滚动浏览它们,类似于ListBox。但是,Silverlight只是忽略了我放入“ItemsPanelTemplate”的所有内容并呈现默认值。这里是相关的代码:覆盖Silverlight 4中的默认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工具包,所以我在网上找到的所有东西都只是用于常规的WPF,并不适用于Silverlight。非常感谢你的建议。
如果你根本没有指定'ItemsPanel',它会工作吗? – Gabe 2011-04-06 19:15:47
ScrollViewer不是Panel,它不起作用。您需要重新定义TabControl的ControlTemplate。这里是关于可滚动tabitems的帖子http://www.dansoltesz.com/post/2010/07/20/Silverlight-tabcontrol-with-scrollable-tabItems.aspx,但它工作可怕。等一下,我会发布正确的代码。 – vorrtex 2011-04-06 20:52:32
所以,如果你真的有趣的工作TabControl与数据绑定和两个按钮(它提供左右滚动),这里是链接:C#代码:http://pastebin.com/Q0Dx3kAn控制的xaml:http:///pastebin.com/E7Nmx7Cs使用示例:http://pastebin.com/aL6t34R8。不要使用我之前评论中的控件,因为我的控件没有错误。一段时间后,我会重构代码并撰写博客文章。 – vorrtex 2011-04-06 21:26:03