c# - 防止 ScrollViewer 更改其内容大小
问题描述
我希望 ScrollViewer 只做一件事 - 允许我滚动。我不希望它允许其内容增长。然而确实如此。如何防止这种情况?
<ScrollViewer VerticalScrollBarVisibility="Auto" >
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="a.png"/>
<Grid Grid.Row="1" Height="400"/>
</Grid>
</ScrollViewer>
如果我注释掉 ScrollViewer - 图像很小。如果我离开 ScrollViewer - 图像会增长。如何防止这种情况?
解决方案
您可以通过将其Stretch
属性设置为 来避免拉伸图像None
。
<Image Grid.Row="0" Stretch="None" .../>
Grid 和 Image 元素使用可滚动区域的整个宽度。由于默认的 Stretch 值为Uniform
,因此 Image 随后会调整其高度以保持其纵横比。
等效但更简单的布局将是
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel>
<Image Stretch="None" Source="a.png"/>
<Grid Height="400"/>
</StackPanel>
</ScrollViewer>
推荐阅读
- java - 从文件中输入的数组不正确
- google-apps-script - 如果出现错误,则跳到下一步以编写 Google 脚本
- excel - Laravel Excel 验证导入
- haskell - 将路径字符串上的 '\\' 更改为 '/'
- javascript - 为什么在使用 async-await 语法时仍然需要等待 while 循环?
- javascript - 如何将 ionic 4 中的条带与 Firebase 功能集成?
- json - 使用 T-SQL 从 RESTful API 解析 JSON
- php - 在同一个刀片中传递单击按钮的值 - laravel
- emacs - 我安装了 tuareg 模式,但它甚至没有在 emacs 中显示
- javascript - 将方法分配给 JavaScript 对象的代码中的问题