Uwp 在gridview中左对齐项目
我似乎不知道如何左对齐我的Uwp 在gridview中左对齐项目,uwp,uwp-xaml,Uwp,Uwp Xaml,我似乎不知道如何左对齐我的GridView的内容。有什么建议吗 <GridView ItemsSource="{Binding HostedRooms}"> <GridView.ItemsPanel> <ItemsPanelTemplate> <ItemsWrapGrid Orientation="Vertical" /> </ItemsPanelTemplate>
GridView
的内容。有什么建议吗
<GridView ItemsSource="{Binding HostedRooms}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="AliceBlue" BorderThickness="0">
<StackPanel Orientation="Horizontal">
<StackPanel Margin="0, 20">
<TextBlock Text="{Binding RoomTitle}" TextAlignment="Left" />
<TextBlock>
<Run Text="Host: " />
<Run Text="{Binding Host}" />
</TextBlock>
<TextBlock>
<Run Text="Map: " />
<Run Text="{Binding Map}" />
</TextBlock>
<TextBlock>
<Run Text="Slots: " />
<Run Text="{Binding ClaimedSlots}" />
<Run Text="/" />
<Run Text="{Binding TotalSlots}" />
<Run Text="Players (" />
<Run Text="{Binding NonObservers}" />
<Run Text=") " />
<Run Text="Observers (" />
<Run Text="{Binding Observers}" />
<Run Text=") " />
</TextBlock>
</StackPanel>
<GridView ItemsSource="{Binding Players}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
</StackPanel>
</Border>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
下面是代码生成的结果。无论出于何种原因,只有第一个项目左对齐,其余项目居中
如果只有一列,为什么要使用GridView而不是ListView? 这是因为DataTemplate没有静态宽度。所以第一个GridViewItem的宽度等于所有页面的宽度(从您的屏幕),然后另一个具有较低的网格并对齐到中心 我建议使用ListView和ItemContainerStyle:
<Style TargetType="ListViewItem" x:Key="CustomCartItemsListview">
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" />
<Setter Property="TabNavigation" Value="Local"/>
<Setter Property="IsHoldingEnabled" Value="True"/>
<Setter Property="Padding" Value="12,0,12,0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}"/>
<Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter
ContentTransitions="{TemplateBinding ContentTransitions}"
SelectionCheckMarkVisualEnabled="True"
CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
DragBackground="{ThemeResource SystemControlHighlightListLowBrush}"
DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}"
FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}"
FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}"
PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}"
PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}"
PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
SelectedBackground="{ThemeResource SystemControlHighlightListLowBrush}"
SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}"
PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}"
SelectedPressedBackground="{ThemeResource SystemControlHighlightListLowBrush}"
DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
ContentMargin="{TemplateBinding Padding}"
CheckMode="Inline"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后你需要像这样使用它:
<ListView ItemContainerStyle="{StaticResource CustomCartItemsListview}">
</ListView>
如果只有一列,为什么要使用GridView而不是ListView? 这是因为DataTemplate没有静态宽度。所以第一个GridViewItem的宽度等于所有页面的宽度(从您的屏幕),然后另一个具有较低的网格并对齐到中心 我建议使用ListView和ItemContainerStyle:
<Style TargetType="ListViewItem" x:Key="CustomCartItemsListview">
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" />
<Setter Property="TabNavigation" Value="Local"/>
<Setter Property="IsHoldingEnabled" Value="True"/>
<Setter Property="Padding" Value="12,0,12,0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}"/>
<Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter
ContentTransitions="{TemplateBinding ContentTransitions}"
SelectionCheckMarkVisualEnabled="True"
CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
DragBackground="{ThemeResource SystemControlHighlightListLowBrush}"
DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}"
FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}"
FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}"
PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}"
PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}"
PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
SelectedBackground="{ThemeResource SystemControlHighlightListLowBrush}"
SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}"
PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}"
SelectedPressedBackground="{ThemeResource SystemControlHighlightListLowBrush}"
DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
ContentMargin="{TemplateBinding Padding}"
CheckMode="Inline"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后你需要像这样使用它:
<ListView ItemContainerStyle="{StaticResource CustomCartItemsListview}">
</ListView>
我当前不在电脑上,但您可以尝试在StackPanel
或边框上设置HorizontalAlignment=“Left”
。我当前不在电脑上,但您可以尝试在StackPanel
或边框上设置HorizontalAlignment=“Left”
。