【发布时间】:2011-04-06 19:11:51
【问题描述】:
我正在尝试覆盖 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是否有效? -
ScrollViewer 不是 Panel,它不会工作。您需要重新定义 TabControl 的 ControlTemplate。这是关于可滚动标签dansoltesz.com/post/2010/07/20/… 的帖子,但效果很糟糕。稍等片刻,我会发布正确的代码。
-
因此,如果您对带有数据绑定和两个按钮(提供左右滚动)的工作 TabControl 真的很感兴趣,这里是链接: C# 代码:pastebin.com/Q0Dx3kAn 控件的 xaml:@987654323 @ 使用示例:pastebin.com/aL6t34R8。并且不要使用我之前评论中的控件,因为我的控件没有错误。过一段时间我会重构代码并写一篇博文。
-
感谢 Vorrtex!这很有帮助。看了你的代码后,我的代码现在可以工作了。
标签: wpf xaml silverlight-4.0 tabcontrol itemspaneltemplate