Переопределение элемента 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.

Другие вопросы по тегам