我已经尝试了几个小时,这应该是非常基本的,但是我很难解决这个问题,而且我找不到在线的任何示例或解决方案。我试图做一个绑定到项目列表的网格布局。我正在使用包含网格的Gridview。我无法填满整个宽度。它只占据一半的窗口。如果我将网格从GridView中拉出,它可以正常工作并扩展到整个窗口,因此我知道这是GridView的问题。下面是我的代码:
<Page.Resources>
<local:BoolToStringConverter x:Key="BoolToStringConverter" FalseValue="No" TrueValue="Yes" />
<helpers:TimActivityTypeToStringConverter x:Key="TimActivityTypeToStringConverter" />
<DataTemplate x:DataType="model:TimActivity" x:Key="TimDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{x:Bind Path=Type, Converter={StaticResource TimActivityTypeToStringConverter}}" />
<TextBlock Grid.Column="1" Text="{x:Bind StartTime}" />
<TextBlock Grid.Column="2" Text="{x:Bind EndTime}" />
<TextBlock Grid.Column="3" Text="{x:Bind From}" />
<TextBlock Grid.Column="4" Text="{x:Bind To}" />
<TextBlock Grid.Column="5" Text="{x:Bind Comment}" />
<TextBlock Grid.Column="6" Text="{x:Bind Path=Chargeable, Converter={StaticResource BoolToStringConverter}}" />
</Grid>
</DataTemplate>
</Page.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<GridView ItemsSource="{x:Bind Activities}"
IsItemClickEnabled="True"
ItemClick="GridView_ItemClick"
ItemTemplate="{StaticResource TimDataTemplate}">
</GridView>
</Grid>
答案 0 :(得分:1)
如果您真的只想扩展gridview,则可以将Gridview的默认ItemsPanel
更改为使用ItemsStackPanel
而不是ItemsWrapGrid
as this solution provided
<GridView ... >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
但是您的内容将改为这样。
根据您的代码,我猜您不希望这样对齐。只需添加此行也可以解决上述问题
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</GridView.ItemContainerStyle>
答案 1 :(得分:0)
如果我没记错的话,您在说的是ListViewItem
和GridViewItem
的默认行为。
您只需将简单的Style
应用于GridView
即可对其进行修改:
<GridView.Style>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</GridView.Style>
最诚挚的问候