Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).
На разных TabItem'ах разное содержимое и когда переключаешсья с одной закладки на другую ширина (и высота) самого TabControl'а изменяется.
Подскажите как сделать так чтобы ширина TabControl'а в WPF определялась максимально шириной одной из закладок!
Здравствуйте, InvisibleMan, Вы писали:
IM>Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).
Где вычисляются? В твоём коде?
Тогда и сделай там не просто зависимость от содержимого, а от "максимально широкого содержимого"
Здравствуйте, MxKazan, Вы писали:
MK>Здравствуйте, InvisibleMan, Вы писали:
IM>>Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).
MK>Где вычисляются? В твоём коде?
MK>Тогда и сделай там не просто зависимость от содержимого, а от "максимально широкого содержимого"
Сорри, не уточнил сразу:
"Вычисляются в зависимости от содержимого" — это значит, что Width и Height я не указываю (и в коде не вычисляю). А кусок xaml'а выглядит так:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TabControl Grid.Column="0" >
<TabItem Header="Tab1">...</TabItem>
<TabItem Header="Tab2">...</TabItem>
</TabControl>
Задавать жестко размеры я не хочу — т.к. пользователь будет менять шрифты. Что делать? Как сделать, чтобы TabControl растягивался по размеру максимально таба.
Здравствуйте, InvisibleMan, Вы писали:
IM>Здравствуйте, MxKazan, Вы писали:
MK>>Здравствуйте, InvisibleMan, Вы писали:
IM>>>Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).
MK>>Где вычисляются? В твоём коде?
MK>>Тогда и сделай там не просто зависимость от содержимого, а от "максимально широкого содержимого"
IM>Сорри, не уточнил сразу:
IM>"Вычисляются в зависимости от содержимого" — это значит, что Width и Height я не указываю (и в коде не вычисляю). А кусок xaml'а выглядит так:
IM> <Grid>
IM> <Grid.ColumnDefinitions>
IM> <ColumnDefinition Width="Auto" />
IM> <ColumnDefinition Width="*" />
IM> </Grid.ColumnDefinitions>
IM> <TabControl Grid.Column="0" >
IM> <TabItem Header="Tab1">...</TabItem>
IM> <TabItem Header="Tab2">...</TabItem>
IM> </TabControl>
IM>Задавать жестко размеры я не хочу — т.к. пользователь будет менять шрифты. Что делать? Как сделать, чтобы TabControl растягивался по размеру максимально таба.
Ага. Понял тебя. ЭэЭх... Судя по шаблону, внутри TabControl лежит ContentPresenter с именем PART_SelectedContentHost. Он забиндин на свойство TabControl.SelectedContent, которое возвращает контент активного TabItem. Так что боюсь, с таким поведением ничего не поделаешь. Можно правда попробовать вручную регулировать размер TabControl'а при смене шрифта, используя метод UIElement.Measure или свойство UIElement.DesiredSize для содержимого всех TabItem. Я правда никогда не пробовал, но вдруг чё выйдет
Ок. Спасибо!