WPF Layout Control - PullRequest
       1

WPF Layout Control

0 голосов
/ 12 июля 2011

Я новичок в WPF.У меня есть окно wpf, которое содержит сетку динамического размера вместе со своими столбцами.Предполагается, что это окно является небольшим окном типа утилиты, которое всегда включено.

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

Я попытался поместить его в контейнер, но это не работает.

Я хочу изменить размер сетки, если пользователь решит изменить размер окна.

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="202" Width="927" WindowStyle="ToolWindow" ShowInTaskbar="True"   Topmost="True">

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <GridSplitter HorizontalAlignment="Right" 
                  VerticalAlignment="Stretch" 
                  ResizeBehavior="PreviousAndNext"
                  Grid.Column="1" 
                  Width="1" 
                  ResizeDirection="Columns"/>

    <GridSplitter HorizontalAlignment="Right" 
                  ResizeBehavior="PreviousAndNext" 
                  VerticalAlignment="Stretch" 
                  Grid.Column="3" 
                  Width="1" 
                  ResizeDirection="Columns"/>

    <StackPanel Grid.Column="2" Height="Auto">
        <Label Background="SteelBlue" HorizontalAlignment="Stretch" Foreground="white" Height="25">Note</Label>
        <RichTextBox ScrollViewer.VerticalScrollBarVisibility="Auto" 
                     ScrollViewer.CanContentScroll="True" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch" >
        </RichTextBox>
    </StackPanel>
</Grid>
</Window>

Ответы [ 3 ]

0 голосов
/ 12 июля 2011

StackPanels не выполняют вертикальное размещение, вам, вероятно, следует либо использовать DockPanel, либо Grid с двумя строками, чтобы RichTextBox был ограничен и знал, когда использовать свою функцию прокрутки.

0 голосов
/ 12 июля 2011

Спасибо, H.B. Замена StackPanel на работающую сетку. Алекс, добавив высоту, не сработал, извини.

Поэтому я заменяю StackPanel на

   <Grid Grid.Column="2">
        <Grid.RowDefinitions>
            <RowDefinition Height="25"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>

        <Label Grid.Row="0" Background="SteelBlue" HorizontalAlignment="Stretch" Foreground="white" Height="25">Note</Label>
        <RichTextBox ScrollViewer.VerticalScrollBarVisibility="Auto" 
                     ScrollViewer.CanContentScroll="True" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch"
                     Grid.Row="1">
        </RichTextBox>
    </Grid>
0 голосов
/ 12 июля 2011

Вы пробовали:

<RichTextBox ScrollViewer.VerticalScrollBarVisibility="Auto" 
                 ScrollViewer.CanContentScroll="True" 
                 HorizontalAlignment="Stretch" 
                 VerticalAlignment="Stretch"
                 ***Height="300">***
    </RichTextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...