Изменение размера DockPanel и перенос строки TextBox - PullRequest
1 голос
/ 14 марта 2011

У меня есть DockPanel с двумя сетками (DockPanel.Dock = "Вправо / Влево"). Слева у меня есть TreeView, а справа у меня есть некоторые текстовые поля. Если я изменю размеры моего окна, размеры панелей изменятся.

Моя проблема в том, что если я напишу длинный текст в TextBox, TextBox увеличится и скроет левую DockPanel вместо разрыва текста.

Я установил минимальную ширину левой DockPanel в '300' и установил TextWrapping в TextBoxes в 'wrap', но ничего не помогает.

Источник:

 <Grid Background="#FF58ACFC" Name="main">
    <DockPanel>
       <Grid DockPanel.Dock="Right" Margin="0,0,5,0">

            <Grid.ColumnDefinitions>
                <ColumnDefinition MinWidth="200" />                    
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition Height="26"/>
                <RowDefinition Height="26"/>
                <RowDefinition Height="26"/>
                <RowDefinition Height="60" />
                <RowDefinition Height="26"/>
                <RowDefinition />
            </Grid.RowDefinitions>

            <Label Content="Titel:" Grid.Row="0"/>
            <TextBox Grid.Row="1" IsReadOnly="False">

            <Label Content="Frage:" Grid.Row="2"/>
            <TextBox Grid.Row="3" TextWrapping="Wrap" IsReadOnly="False" AcceptsReturn="True">

            <Label Content="Antwort:" Grid.Row="4"/>
            <TextBox Grid.Row="5" IsReadOnly="False" TextWrapping="Wrap" />
        </Grid>


        <Grid DockPanel.Dock="Left" Margin="5,0,0,0">

            <DockPanel>
                <Grid DockPanel.Dock="Left">
                    <DockPanel LastChildFill="True">
                        <Grid DockPanel.Dock="Top" Height="26">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <Label Content="Kategorie" Grid.Column="0"/>
                            <Button Grid.Column="1" BorderThickness="0" HorizontalAlignment="Right">
                        </Grid>

                        <TreeView HorizontalAlignment="Stretch" VerticalAlignment="Stretch"Padding="0,0,15,0" />
                    </DockPanel>
                </Grid>

                <Grid DockPanel.Dock="Right">
                    <DockPanel LastChildFill="True">

                        <Grid DockPanel.Dock="Top" Height="26">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                            <Label Content="Lernkarten" Grid.Column="0"/>
                            <Button Grid.Column="1" Width="26" Click="ButtonAddItem_Click">
                        </Grid>

                        <ListView />
                    </DockPanel>
                </Grid>
            </DockPanel>
        </Grid>
    </DockPanel>
</Grid>

1 Ответ

2 голосов
/ 14 марта 2011

Вот почему Dockpanels бесполезны: -)

Я предлагаю использовать Grid ..

...