Переопределение элемента ItemsPanelTemplate по умолчанию в Silverlight 4?
Я пытаюсь переопределить шаблон по умолчанию для TabControl в Silverlight. Вместо того, чтобы вкладки оборачивались, когда они заполнены, я хочу сделать так, чтобы пользователь мог прокручивать их, подобно 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. Спасибо всем большое за ваш совет.
1 ответ
У ItemsPanel должна быть панель в качестве корневого элемента. У вас есть ScrollViewer. Если вы хотите добавить ScrollViewer, вам нужно создать пользовательский ControlTemplate, который оборачивает ItemsPresenter в ScrollViewer. ItemsPresenter будет там, где отображается ItemsPanel.
Вы должны быть в состоянии получить стиль и ControlTemplate по умолчанию из источника Silverlight Toolkit и настроить его под свои нужды. Затем включите вашу измененную версию в ресурсы приложения или примените ее явно к отдельным элементам TabControls.