我使用 ScrollViewer 来滚动包含数据网格的用户控件时遇到问题。如果没有滚动查看器,列会按照我想要的方式填充数据网格,但是当添加滚动查看器时,列会缩小到约 15 像素。我能够简化我的布局,并且仍然可以重现这种行为。
将数据网格宽度绑定到另一个控件时,列具有其法线,但毫无疑问,这与数据网格上的固定宽度具有相同的效果。
我想我不是第一个遇到这个问题的人。我如何解决这种行为,让网格调整其大小以适应可用空间,并为其列提供比例宽度?
With scrollviewer:
and without:
<Window x:Class="GridTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200">
<DataGrid Margin="0" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Column A" Width="*"/>
<DataGridCheckBoxColumn Header="Column B" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</ScrollViewer>
是的,我不久前遇到了这个问题,我采取了解决方法,我将在这里发布以防万一它有用
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid x:Name="grid" MinWidth="200">
<DataGrid Width="{Binding ElementName=grid, Path=ActualWidth}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Column A" Width="1*"/>
<DataGridCheckBoxColumn Header="Column B" Width="1*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</ScrollViewer>
诀窍是给DataGrid
宽度,在本例中我绑定回包含元素
或者如果您不使用HorizontalScrollBar
您可以禁用它,这将允许ScrollViewer
计算宽度允许 DataGrid 计算宽度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)