我现在真的需要你的帮助。我尝试了几千种解决方案,但没有任何方法可以帮助我。这是使用Microsoft Visual Studio 2013 for Windows构建的页面的一部分。我想使Slider(名为slider_1)响应,所以它应该填充页面的其余部分,无论屏幕解决方案(不能使用固定高度):
<Grid Style="{StaticResource LayoutRootStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- Back button and page title -->
<Grid Grid.Row="0">
.........
</Grid>
<Grid Grid.Row="1" Name="secGrid">
<GridView x:Name="source">
<GridViewItem x:Name="item_1">
<Grid x:Name="container_1">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" x:Name="name_1" Height="39" Text="123"></TextBlock>
<Button Grid.Row="1" x:Name="toggle_on_1" Content="ON"></Button>
<Slider Grid.Row="2" x:Name="slider_1" Orientation="Vertical" VerticalAlignment="center" HorizontalAlignment="center"/>
<Button Grid.Row="3" x:Name="toggle_off_1" Height="39" Content="OFF"></Button>
</Grid>
</GridViewItem>
</GridView>
</Grid>
以为我可以通过将Slider的高度绑定到“secGrid”的ActualHeight来实现它,但这不适合我的目的,即使它似乎与转换器组合使用效果很好:
<Slider Grid.Row="2" x:Name="slider_1" Orientation="Vertical" VerticalAlignment="center" HorizontalAlignment="center" Height="{Binding ActualHeight, ElementName=secGrid}"/>
尝试将VerticalAligment / VerticalContentAligment设置为“Stretch”,但它不起作用。 重要的是它能够响应其他屏幕解决方案。
任何人都可以帮助我吗?除了名为container_1的内部网格之外,我是否还必须使用其他类型的元素?这让我发疯了......
PS:对不起语言错误。我是德国人:)
答案 0 :(得分:1)
您的自动调整大小网格会为滑块缩放产生问题,因为自动意味着&#34;大小为行内容&#34;,*表示&#34;大小与网格成比例&#34;。
自动表示行的高度与其中的元素所需的高度相同。
*大小行的高度是通过为自动和固定高度行分配空间,然后将剩余空间分开来计算的。
如果我将高度设置为rowdefination 2或者我将height设置为grid ,则下面的代码可以正常工作
<Grid>
<GridView x:Name="source">
<GridViewItem x:Name="item_1" >
<Grid x:Name="container_1">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" x:Name="name_1" Height="39" Text="123"></TextBlock>
<Button Grid.Row="1" x:Name="toggle_on_1" Content="ON"></Button>
<Slider Grid.Row="2" x:Name="slider_1" Orientation="Vertical" HorizontalAlignment="center"/>
<Button Grid.Row="3" x:Name="toggle_off_1" Height="39" Content="OFF"></Button>
</Grid>
</GridViewItem>
</GridView>
</Grid>