[WPF] Viewbox и Grid - как использовать вместе?
От: st8ic  
Дата: 17.05.11 11:36
Оценка:
Есть задача: в один grid занимающий всё свободное пространство с несколькими строками поместить блоки текста, каждый из которых находится посередине своей строки. При этом шрифт у textblock должен устанавливаться динамически и быть одинаковым для обоих блоков текста.

Для установки позций текста я использовал grid — для данного примера можно было обойтись и uniformgrid, но это не важно. Результат на рисунке 1, код приведен ниже:

<Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
                <TextBlock Grid.Row="0" VerticalAlignment="Center">a lot of text in the first row</TextBlock>
                <TextBlock Grid.Row="1" VerticalAlignment="Center">some text</TextBlock>
</Grid>


Для получения одинакового шрифта во всех блоках текста помещаем весь код, приведенный выше в viewbox. Шрифт выставляется как и было нужно, но заданное в grid позиционирование при этом игнорируется — см. рисунок 2.

Подскажите, как требовалось правильно написать этот код на XAML? Заранее спасибо!

Рис. 1 Рис. 2
Re: [WPF] Viewbox и Grid - как использовать вместе?
От: MxMsk Португалия  
Дата: 17.05.11 21:10
Оценка:
Здравствуйте, st8ic, Вы писали:

S>Для получения одинакового шрифта во всех блоках текста помещаем весь код, приведенный выше в viewbox. Шрифт выставляется как и было нужно, но заданное в grid позиционирование при этом игнорируется — см. рисунок 2.

Viewbox здесь не поможет. Чтобы растянуть объект, Viewbox-у нужно подсчитать размер содержимого без ограничения размеров. В таком варианте Grid возвращает размер, достаточный для двух TextBox-ов. А следовательно ни о каком выравнивании и речи идти не может. Легко проверить, кстати, задав Grid-у непрозрачный Background. К сожалению, мне пока не видится решение без кода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.