【问题标题】:Combination of ScrollViewer and Grid not working as expectedScrollViewer 和 Grid 的组合没有按预期工作
【发布时间】:2015-03-17 05:47:45
【问题描述】:

我定义了以下DialogWindow:

<ui:DialogWindow x:Class="CodeElementRatingWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.12.0"
        Title="CodeElementRatingWindow" Height="600" Width="800">
    <Grid Name="root">
        <Grid.RowDefinitions>
            <RowDefinition Height="60px"></RowDefinition>
            <RowDefinition Height="510px"></RowDefinition>
            <RowDefinition Height="30px"></RowDefinition>
        </Grid.RowDefinitions>
        <Label Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="0" Name="TitleLabel" Content="Please rate the difficulty you perceived while working with each of the following code elements (1 = ''very easy'' / 6 = ''very difficult'')"></Label>
        <ScrollViewer MinHeight="510px">
            <Grid Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="1" Name="ElementContainer">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                    <ColumnDefinition Width="150"></ColumnDefinition>
                </Grid.ColumnDefinitions>
            </Grid>
        </ScrollViewer>
        <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Button Content="OK" Grid.Column="0" Click="OK_Button_Click"></Button>
            <Button Content="Cancel" Grid.Column="1" Click="Cancel_Button_Click"></Button>
        </Grid>
    </Grid>
</ui:DialogWindow>

布局基本上由三行组成。第一行有一个标题标签,底行有两个按钮,在中间,我想要一个 UI 元素列表,我在代码中动态添加到那里的 Grid 中。因为我事先不知道有多少项目,所以我想在 ScrollViewer 中显示它们。

可以看到画了ScrollViewer,但是问题是,ScrollViewer和标题标签重叠,也有些笨拙。当我删除 ScrollViewer 时,情况并非如此。那我做错了什么?

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    只需更改 ScrollViewer 的 Grid.Row=1。它会起作用的。参考下面的代码。

    <Grid Name="root">
            <Grid.RowDefinitions>
                <RowDefinition Height="60px"></RowDefinition>
                <RowDefinition Height="510px"></RowDefinition>
                <RowDefinition Height="30px"></RowDefinition>
            </Grid.RowDefinitions>
            <Label Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="0" Name="TitleLabel" Content="Please rate the difficulty you perceived while working with each of the following code elements (1 = ''very easy'' / 6 = ''very difficult'')"></Label>
            <ScrollViewer MinHeight="510px" Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="1">
                <Grid  Name="ElementContainer">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                        <ColumnDefinition Width="150"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                </Grid>
            </ScrollViewer>
            <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Button Content="OK" Grid.Column="0" Click="OK_Button_Click"></Button>
                <Button Content="Cancel" Grid.Column="1" Click="Cancel_Button_Click"></Button>
            </Grid>
        </Grid>
    

    【讨论】:

      猜你喜欢
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多