C# Scrollviewer实际高度超过屏幕分辨率
我有一个带有以下行设置的C# Scrollviewer实际高度超过屏幕分辨率,c#,.net,wpf,scrollviewer,actualheight,C#,.net,Wpf,Scrollviewer,Actualheight,我有一个带有以下行设置的网格: (对不起,我不能发布太多代码) 在该网格中,我有一个ScrollViewer,第0行有Height=“Auto”和verticalignment=“Stretch” 在第2行,我有另一个固定高度为60像素的网格 当我执行this.UpdateLayout(在UserControl中)时,scrollviewer.ActualHeight将转到2332,它与其中的图像大小相同,并且超过了分辨率屏幕。为什么不更新以适应屏幕 谢谢。如果您将外部网格垂直放置在f.i.aS
网格
:
(对不起,我不能发布太多代码)
在该网格中,我有一个ScrollViewer
,第0行有Height=“Auto”
和verticalignment=“Stretch”
在第2行,我有另一个固定高度为60像素的网格
当我执行this.UpdateLayout
(在UserControl
中)时,scrollviewer.ActualHeight
将转到2332,它与其中的图像大小相同,并且超过了分辨率屏幕。为什么不更新以适应屏幕
谢谢。如果您将外部
网格
垂直放置在f.i.aStackPanel
中,那么网格的高度可能没有限制,而ScrollViewer
上可能没有垂直限制。将网格
放置在文件面板
中,或设置网格
的(最大)高度。然后,ScrollViewer
将具有有限的高度 使用的最小高度、最大高度
<ScrollViewer
VerticalAlignment="Top"
Grid.Column ="0"
MinHeight="60"
MaxHeight="190"
Grid.Row="0"
/>
然后调整Scrollviewer的屏幕分辨率网格本身在其中是什么?将第一行定义高度设置为“星形”-没有多大意义,因为它永远不会填满剩余空间,“星形”通常用于最后一行或最后一列。通常情况下,UpdtaeLayout是不需要的——毕竟它是异步工作的,所以您的观察窗口无论如何都不会显示正确的图形。网格有一个scrollviewer、一个网格和其他无关紧要的东西。我已经试过放0.8*和0.2*或任何类似的东西。这种方法解决不了问题。但是让我注意到了这个错误。userControl的主容器是一个stackpanel。当我把它改成网格的时候。成功了!:迪蒂
<ScrollViewer
VerticalAlignment="Top"
Grid.Column ="0"
MinHeight="60"
MaxHeight="190"
Grid.Row="0"
/>