C# 垂直对齐Windows应用商店应用程序中列表框的内容
我有一个Windows应用商店应用程序,它有一个C# 垂直对齐Windows应用商店应用程序中列表框的内容,c#,xaml,listbox,windows-store-apps,C#,Xaml,Listbox,Windows Store Apps,我有一个Windows应用商店应用程序,它有一个列表框,其中包含可变高度的网格。我无法让这些在顶部对齐。我尝试了我能想到的VerticalAlignment和VerticalContentAlignment的所有组合,它们总是垂直居中 这是我的XAML <Page x:Class="MyApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="h
列表框
,其中包含可变高度的网格。我无法让这些在顶部对齐。我尝试了我能想到的VerticalAlignment
和VerticalContentAlignment
的所有组合,它们总是垂直居中
这是我的XAML
<Page
x:Class="MyApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid Margin="50,50,50,50" HorizontalAlignment="Stretch" Width="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="80"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="" Margin="12,0,0,0" Style="{StaticResource HeaderTextStyle}" />
<Grid Grid.Row="1" Margin="30,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="15"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="15"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" x:Name="bxAddItem" Width="300" Height="28" Margin="0,0,0,0" Text="Item text" KeyUp="bxAddItem_KeyUp" GotFocus="bxAddItem_GotFocus" LostFocus="bxAddItem_LostFocus"></TextBox>
<ComboBox Grid.Column="2" x:Name="comboList" SelectionChanged="comboList_SelectionChanged" Width="100" Height="32">
<ComboBoxItem Tag="0">No List</ComboBoxItem>
</ComboBox>
<Button Grid.Column="4" x:Name="btnAddItem" Click="AddItem_Click" HorizontalAlignment="Left" Background="#45000000" Height="34">Add an Item</Button>
</Grid>
<ScrollViewer HorizontalScrollBarVisibility="Visible" Grid.Row="2">
<ListBox Width="Auto" VerticalContentAlignment="Top" ItemsSource="{Binding ToDoLists}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Beige">
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Title}"></TextBlock>
<ListBox Grid.Row="1" Grid.Column="0" Name="ToDoList" ItemsSource="{Binding Path=Items}"
Margin="24,0,0,0" Height="Auto" MinWidth="200" VerticalAlignment="Stretch"
BorderBrush="BlueViolet" SelectionChanged="ToDoList_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding ItemName}"></TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ListBox>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel VerticalAlignment="Top" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ListBox>
</ScrollViewer>
</Grid>
</Grid>
</Page>
没有名单
添加项目
编辑:
谢里登的回答对我不起作用。页面上可能还有其他原因导致了问题
我已经更新了问题以包含整个页面代码
编辑2:
这篇文章被错误地标记为WPF,而事实上问题是在Windows应用商店应用程序中。这段代码在WPF中工作得很好,因此造成了混乱。但是,它在Windows应用商店应用程序中不起作用。您是否尝试将ItemContainerStyle设置为VerticalAlignment=“Top”
-1在发布问题之前没有测试您的代码。如果Sheridan的答案不正确,请澄清。我已经离开我的机器一整天了。不管是谁投票否决了你的答案,很明显是另一个人不赞成你那卑鄙的举止。我只是想澄清一下,这对我来说仍然不起作用。截图:@roryok,我道歉得太多了。我承认你没有投我反对票,我为得出错误的结论而道歉。。。那一定很烦人。然而,我关于代码的观点仍然存在。我刚刚重新测试了你的所有代码,包括你的新代码,它仍然可以正常工作。我能看到的唯一区别是我使用了一个窗口
,而您使用的是一个页面
。这很奇怪。。。如果在新的WPF应用程序中将代码复制到MainWindow.xaml
,那么您也会看到它工作得很好。您在这里还没有添加其他内容。请按照帮助中心页面中的步骤编写一个完整但简洁的代码示例,该示例仍然演示了您的问题,我们可以再次查看。
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="VerticalAlignment" Value="Top"></Setter>
</Style>
</ListBox.ItemContainerStyle>