Silverlight Grid внутри заголовка TabItem - PullRequest
1 голос
/ 17 июня 2011

Мой пользовательский заголовок TabItem выглядит следующим образом:

<sdk:TabControl>
    <sdk:TabItem >
        <sdk:TabItem.Header>
             <Grid Background="Gray" HorizontalAlignment="Stretch">
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition></ColumnDefinition>
                     <ColumnDefinition></ColumnDefinition>
                 </Grid.ColumnDefinitions>
                 <!-- some labels go here -->
             </Grid>
        </sdk:TabItem.Header>
     </sdk:TabItem>
</sdk:TabControl>

Это создает однорядную двухколоночную сетку внутри заголовка TabItem.Сетка автоматически масштабируется в соответствии с метками, как и должно быть, но когда размер реальной кнопки вкладки увеличивается, сетка не корректируется, чтобы заполнить пространство (даже если я указываю <HorizontalAlignment="Stretch">).

Почемуэто?Есть ли способ, чтобы сетка занимала все доступное горизонтальное пространство в заголовке?

1 Ответ

1 голос
/ 20 июня 2011

Проблема в том, что шаблон по умолчанию для TabItem, который используется для визуализации вкладки, помещает содержимое заголовка в ContentControl. Теперь ContentControl имеет свойства HorizontalContentAlignment и VerticalContentAlignment, которые имеют значения по умолчанию "Слева" и "Вверх". Вот почему ваша сетка занимает только необходимое ей пространство, а не растягивается до полного доступного размера.

Во избежание этого вам нужно будет сделать копию шаблона по умолчанию для TabItem и присвоить значение «Растянуть» обоим этим свойствам элементов ContentControl в шаблоне (их 8 в все, 2 для каждого возможного размещения TabStrip (сверху, слева, снизу и справа)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...