我需要使DataGrid大小适合其所有内容(即使DataGrid将大于它的父级)。有可能吗?
答案 0 :(得分:2)
所以,我找到的答案......只是将DataGrid放入StackPanel,垂直方向。它具有无限高度,因此网格将占用所需的空间。
答案 1 :(得分:0)
编辑:回复:原创海报的评论
你好,
你问题的真正答案是否 - 我确定你不想听到这个。没有办法让孩子离开并做自己的事情。
但是,我们可以使用一些模式来解决问题。这些解决方案产生类似于您想要的效果。最难打破DataGrid父级确定的限制。据我所知,你只有两条路线可以去:
选项1:重构所有父级以使用DataGrid调整大小。执行此操作的最佳方法是在所有内容上使用MinWidth和MinHeight属性。默认情况下,他们将使用他们的大小,但如果他们的一个孩子需要更多的空间,他们将扩大。这样做可以让DataGrid根据需要进行扩展。
<Grid MinWidth="500" MinHeight="500">
<sdk:DataGrid ItemsSource="{Binding Items}">
</Grid>
选项2:将DataGrid放在“父”控件上。想想HTML / CSS。这是最棘手的概念,因为您必须“知道”放置DataGrid的位置以及它将如何增长。您可以添加剪切路径以使DataGrid看起来像是Grid的子节点,但这是对另一篇文章的回答。
<Grid Width="500", Height="500"/>
<sdk:DataGrid ItemsSource="{Binding Items}" Margin="300,300,0,0"/>
再一次,我希望这会有所帮助。如果您还有其他需要,请告诉我。
你好
我假设你想在DataGrid上使用滚动条。
默认情况下,DataGrid将生成所有列。但是,因为它默认情况下不启用滚动条,所以它会尝试将它找到的所有列放入一个屏幕。您可以通过设置DataGrid的ScrollViewer来显示它们来启用这些滚动条。
如果这不是您所需要的,请告诉我。
祝你有美好的一天!
<sdk:DataGrid
ItemsSource="{Binding Items}"
AutoGenerateColumns="True"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible"/>
P.S。如果您手动设置列,请不要设置Width="*"
。设置Width="*"
告诉DataGrid仅使用一个屏幕中可用的剩余宽度。
避免这个! <sdk:DataGridTextColumn ... Width="*"/>