首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用网格渲染的WPF ScrollViewer不正确

使用网格渲染的WPF ScrollViewer不正确
EN

Stack Overflow用户
提问于 2018-08-01 01:20:41
回答 1查看 451关注 0票数 1

以这个简单的代码为例:

代码语言:javascript
复制
<Window x:Class="WpfApplication1.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="340" Width="600">
    <ScrollViewer>
        <Grid Background="Red" VerticalAlignment="Top">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" MinWidth="20" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>

            <TextBlock Grid.Row="0" Text="1:" />
            <TextBox Grid.Row="0" Grid.Column="1" Height="80" Margin="4" />

            <TextBlock Grid.Row="1" Text="2:" />
            <TextBox Grid.Row="1" Grid.Column="1" Height="80" Margin="4" />

            <TextBlock Grid.Row="2" Text="3:" />

            <TextBlock Grid.Row="3" Grid.Column="0" Text="4.:" />
        </Grid>
    </ScrollViewer>
</Window>

Visual Studio designer正确显示所有内容:

然而,在运行时,结果是:

注意到第nr行不再位于网格中了吗?!它被渲染到它的外部。此外,如果缩短窗口,垂直滚动条将变为可见,但它只滚动红色区域。无法滚动查看第4行。

如果从Grid中删除VerticalAlignment="Top",则呈现似乎已修复,但滚动仍无法正常工作。

有人能解释一下到底是怎么回事吗?这是微软的bug吗?

我运行的是Visual Studio2017社区版(完全更新),Win 10版本1803,其中包含.NET 4.7.2。

(我认为这与.NET 4.7.2有关,因为直到现在我都没有注意到这个问题)

有一种解决方法,为所有行指定- <RowDefinition Height="Auto" />,但这不是必需的...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 04:59:30

这是为*-行分配空间的新算法中的一个错误。(当应用程序以4.7+为目标时,或者当您安装了4.7+并设置了Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=false.)时,应用程序将使用新算法

这个错误早些时候就被报道过了(见https://github.com/Microsoft/dotnet/issues/674),并且已经在4.8 (见https://github.com/Microsoft/dotnet-framework-early-access/blob/master/release-notes/NET48/build-3632/dotnet-build-3632-changes.md#wpf)中修复了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51618870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档