ширина TabControl в WPF
От: InvisibleMan Россия http://bookzilla.ru
Дата: 20.10.08 13:55
Оценка:
Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).
На разных TabItem'ах разное содержимое и когда переключаешсья с одной закладки на другую ширина (и высота) самого TabControl'а изменяется.

Подскажите как сделать так чтобы ширина TabControl'а в WPF определялась максимально шириной одной из закладок!
Самые дешевые кнгиги в интернет магазинах — http://bookzilla.ru
Re: ширина TabControl в WPF
От: MxKazan Португалия  
Дата: 20.10.08 17:38
Оценка:
Здравствуйте, InvisibleMan, Вы писали:

IM>Ширина (и высота) TabControl'а у меня жестко не задаются (вычислются в зависимости от содержимого).


Где вычисляются? В твоём коде?
Тогда и сделай там не просто зависимость от содержимого, а от "максимально широкого содержимого"
Re[2]: ширина TabControl в WPF
От: InvisibleMan Россия http://bookzilla.ru
Дата: 20.10.08 18:04
Оценка:
Здравствуйте, 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 растягивался по размеру максимально таба.
Самые дешевые кнгиги в интернет магазинах — http://bookzilla.ru
Re[3]: ширина TabControl в WPF
От: MxKazan Португалия  
Дата: 20.10.08 18:26
Оценка:
Здравствуйте, 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. Я правда никогда не пробовал, но вдруг чё выйдет
Re[4]: ширина TabControl в WPF
От: InvisibleMan Россия http://bookzilla.ru
Дата: 22.10.08 05:18
Оценка:
Ок. Спасибо!
Самые дешевые кнгиги в интернет магазинах — http://bookzilla.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.