如何让子ScrollViewer在另一个(父)ScrollViewer中填充其父级

时间:2017-07-20 08:23:01

标签: wpf

我有一个设计,其中一个ScrollViewer嵌入到另一个ScrollViewer中。 我遇到的问题是,子ScrollViewer没有填充其父级,但始终使父级ScrollViewer滚动。 我需要向子ScrollViewer提供它父级所拥有的空间,然后让子项滚动,如果它的内容太大而不适合。

我知道有一个类似的问题,但它对我没有帮助: Use ScrollViewer inside another Scrollviewer

以下是显示问题的代码:

 <Window
    x:Class="ScrollviewerIssue.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="200"
    Height="200"
    mc:Ignorable="d">
    <ScrollViewer>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="*" />
                <RowDefinition Height="30" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="30" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="30" />
            </Grid.ColumnDefinitions>


            <ScrollViewer Grid.Row="1" Grid.Column="1">
                <TextBox TextWrapping="Wrap">
                    Long text Long text Long text Long text Long text Long text Long text Long text Long text Long text Long text
                </TextBox>
            </ScrollViewer>
        </Grid>
    </ScrollViewer>
</Window>

1 个答案:

答案 0 :(得分:0)

ScrollView是一个布局容器。布局(例如,LinearLayout)是视图容器。如何滚动,滚动行为由放在ScrollView中的布局定义。

ScrollView是一种界面,它根据布局内部进行滚动。

因此,要设置嵌套的ScrollView,您可以执行以下操作:

ScrolleView
    LinearLayout
        ScrollView
    RelativeLayout
        TextView