还在http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/f765d4c9-1719-4757-b467-2492d87bb4ab询问
全部,
我有一个在我的 WPF 应用程序中执行缩放变换的滑块。现在我遇到了一个问题,我在滚动查看器内有一个元素,该元素位于具有高度 =“*”的行内,而后续行中的另一个元素具有高度 =“自动”。
目标是直到运行时我们才知道行高(甚至元素有多大),但是我们将两个元素都显示在屏幕上,第一个元素占用与其一样多的空间罐头和底部元素始终可见,占用它需要的任何空间。
我有以下问题/解决方案声明(我认为最能描述我的问题),并且如您所见,当我想实现此目标并且仍然允许在缩放时访问所有 UI 元素时,我被困在做什么大到足以将其中一个元素从屏幕上推出(希望这是有道理的)。
Problem statement:
ScaleTransform is causing top DG to disappear where RowDefinition Height="*"
Solution:
Set Minimum height on RowDefinition to prevent DG from disappearing.
Problem statement:
Setting Minimum height on RowDefinitoin causes lower rows to dissapear.
Solution:
Add scrollviewer encapsulating grid.
Problem statement:
Since top DG is in RowDefinition Height="*", if there is a lot of data in top DG, bottom DGs cannot be seen without scrolling.
Solution statement:
???
这是我当前的代码:
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="120" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Grid.Row="0">
<DataGrid ItemsSource="{Binding Path=SomePathThatCouldHaveLotsOfData}">
<!--Note that DataGrid implements its own scrollviewer as long as it's not surrounded by another scrollviewer-->
<!--...-->
</DataGrid>
</GroupBox>
<GroupBox Grid.Row="1">
<!--...-->
</GroupBox>
希望这一切都有意义我的问题是什么以及我正在尝试做什么。任何想法我如何才能完成这项工作(希望以一种干净的方式)。如果有帮助,我正在使用 MVVM。
编辑:我应该指出,直到运行时我也不知道任何最大高度(并且最大高度可能无论如何都无关紧要,因为我们将使用比例变换)。