WPF布局控件

时间:2011-07-12 03:03:16

标签: wpf xaml

我是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 :(得分:0)

你试过了吗?

<RichTextBox ScrollViewer.VerticalScrollBarVisibility="Auto" 
                 ScrollViewer.CanContentScroll="True" 
                 HorizontalAlignment="Stretch" 
                 VerticalAlignment="Stretch"
                 ***Height="300">***
    </RichTextBox>

答案 1 :(得分:0)

StackPanels不进行垂直布局,你可能要么使用DockPanel,要么使用带有两行的Grid,这样RichTextBox就会受限制,并且知道何时使用它的滚动功能。

答案 2 :(得分:0)

感谢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>