2012-02-13 2 views
0

Мне нужна какая-то формула для расчета размер шрифта от TextBlock для владельца - Canvas.Как рассчитать размер шрифта TextBlock для заполнения холста?

Скажем, у меня есть Canvas высоту 100.0, то какой TextBlock размер шрифта должен заполнить все пространство Canvas?

P.S. Основная проблема заключается в том, что я перечисляю эти TextBlocks горизонтально ...

+2

Не было бы проще наклеить TextBlock в окне просмотра и заполнить область холста? – jjrdk

ответ

0

Я нашел решение, которое отлично работает для меня.

double h = canvas1.Height/2; 

foreach (var item in textBlocks) 
{ 
    if (item is TextBlock) 
    { 
     (item as TextBlock).FontSize = h; 
    } 
} 
2

Почему бы просто не использовать все FontSize в то время как положить TextBlock в Viewbox которого Height обязан что в Canvas? (Если не установлено явно ActualHeight из Canvas)

+0

Не могли бы вы предоставить какой-нибудь XAML, пожалуйста? –

+0

@DmitryBoyko: Нет, это тривиально, сначала попробуйте. –

+0

Боюсь, я не могу использовать этот подход ... Потому что у меня много текстовых блоков. И они прокручиваются горизонтально. –

1

Я нашел решение, которое отлично работает для меня.

double h = canvas1.Height/2; 
TextBlock1.FontSize = h; 
Смежные вопросы