【发布时间】:2014-04-19 20:54:09
【问题描述】:
我现在真的需要你的帮助。我已经尝试了数千种解决方案,但对我没有任何帮助。这是使用 Microsoft Visual Studio 2013 for Windows 构建的页面的一部分。我想让滑块(名为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: 语言错误请见谅。我是德国人:)
【问题讨论】:
标签: c# windows xaml gridview slider