Переопределение элемента ItemsPanelTemplate по умолчанию в Silverlight 4? - PullRequest
4 голосов
/ 06 апреля 2011

Я пытаюсь переопределить шаблон по умолчанию для 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 для вкладок, поэтому все, что я нахожу в Интернете, предназначено только для обычного WPF и не работает для Silverlight. Большое спасибо всем за советы.

1 Ответ

2 голосов
/ 07 апреля 2011

ItemsPanel должна иметь панель в качестве корневого элемента.У вас есть ScrollViewer.Если вы хотите добавить ScrollViewer, вам нужно создать пользовательский ControlTemplate, который оборачивает ItemsPresenter в ScrollViewer.ItemsPresenter будет там, где отображается ItemsPanel.

Вы сможете получить стиль и ControlTemplate по умолчанию из источника Silverlight Toolkit и настроить его под свои нужды.Затем включите вашу измененную версию в ресурсы вашего приложения или примените ее явно к отдельным элементам TabControls.

...