gpt4 book ai didi

c# - DataGrid.ColumnWidth ="*"在 ScrollViewer 中不起作用

转载 作者:行者123 更新时间:2023-11-30 20:36:32 24 4
gpt4 key购买 nike

我在 ScrollViewer 中有一个带有 ColumnWidth="*"DataGridHorizo​​ntalScrollBarVisibility="Auto" .不幸的是,这种组合似乎效果不佳。虽然 DataGrid 正确地跨越整个窗口宽度,但列非常小 (MinWidth)。如果我将 Horizo​​ntalScrollBarVisibility 更改为 Disabled 它可以工作,但我失去了所需的 ScrollViewer 行为。

最小工作示例:

<Window x:Class="WPF_Sandbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF_Sandbox"
Title="MainWindow"
x:Name="ThisControl">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<DataGrid AutoGenerateColumns="False" ColumnWidth="*">
<DataGrid.Columns>
<DataGridTextColumn Header="Column 1" />
<DataGridTextColumn Header="Column 2" />
<DataGridTextColumn Header="Column 3" />
<DataGridTextColumn Header="Column 4" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Window>

为什么会发生这种情况,我该如何解决?

最佳答案

您看到的问题是因为 Datagrid 在 ScrollViewer 内部,它几乎有无限的空间可以扩展,所以它无法计算宽度。为此,您可以将 DataGrid Width 绑定(bind)到 ScrollViewer ViewportWidth,如下所示:

<DataGrid AutoGenerateColumns="False" ColumnWidth="*" 
Width="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ScrollViewer}}, Path=ViewportWidth}">

关于c# - DataGrid.ColumnWidth ="*"在 ScrollViewer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com