Как установить RichTextBox в Silverlight 4, чтобы он соответствовал родительской высоте и поддерживал его при изменении размера? - PullRequest
1 голос
/ 26 мая 2010

У меня трудные времена, чтобы понять это. Вот что мне нужно:

<StackPanel x:Name="container" VerticalAlignment="Stretch">
     <RichTextBox Height="???" />
</StackPanel>

В основном я знаю, что могу связать RichTextBox Высота с высотой его родителя (Height="{Binding ElementName=container, Path=ActualHeight}". К сожалению, это работает только при нагрузке, поскольку, как кажется, ActualHeight и ActualWidth не уведомляют об изменениях .

Итак, как лучше всего в Silverlight 4 сказать RichTextBox или TextBlock , не имеет значения, заполнить родительскую высоту и поддерживать полосу прокрутки, если высота содержимого больше. Является ли единственный способ связать некоторые события изменения размера и явно поддерживать высоту? Это кажется мне действительно безобразным? У кого-нибудь была эта проблема?

Любые ресурсы или информация высоко ценится! Спасибо.

1 Ответ

0 голосов
/ 27 мая 2010

Иван

Лучший способ решить эту проблему - использовать Grid в качестве родительского элемента для RickTextBox вместо StackPanel. По умолчанию Grid будет «Strectch» своего содержимого, чтобы занять все доступное пространство. StackPanel будет растягивать содержимое только за одно уменьшение.

В качестве примера вставьте следующий XAML в мой XamlViewer , чтобы увидеть разницу:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0">
            <RichTextBox
                Foreground="Blue" FontSize="24" Background="Yellow">
                <Paragraph>RichTextBox inside a StackPanel</Paragraph>
            </RichTextBox>
        </StackPanel>
        <Grid Grid.Row="1">
            <RichTextBox
                Foreground="Blue" FontSize="24" Background="Tan">
                <Paragraph>RichTextBox inside a Grid</Paragraph>
            </RichTextBox>
        </Grid>
    </Grid>
</UserControl>

Удачи,
Джим МакКарди, Face to Face Software и YinYangMoney

...