C# 如何在UWP中创建具有固定列数的栅格视图?
我正在尝试为我的应用程序创建日历组件。目前,我正在开发一个日历视图,该视图显示一个月7天,其中每天都是一个事件列表 为此,我需要通知C# 如何在UWP中创建具有固定列数的栅格视图?,c#,.net,xaml,uwp,C#,.net,Xaml,Uwp,我正在尝试为我的应用程序创建日历组件。目前,我正在开发一个日历视图,该视图显示一个月7天,其中每天都是一个事件列表 为此,我需要通知GridView,我总是希望它的格式能够在每一行中容纳7个元素,并且它们之间没有间隙。基础集合始终包含七个元素中的多个 我目前拥有的(ExtendedGridView/ExtendedListView与基本的GridView/ListView相同,不进行任何视觉转换): 它目前的样子: 我对使用XAML相当陌生,所以也许我应该采取完全不同的方法。非常感谢您的帮
GridView
,我总是希望它的格式能够在每一行中容纳7个元素,并且它们之间没有间隙。基础集合始终包含七个元素中的多个
我目前拥有的(ExtendedGridView
/ExtendedListView
与基本的GridView
/ListView
相同,不进行任何视觉转换):
它目前的样子:
我对使用XAML相当陌生,所以也许我应该采取完全不同的方法。非常感谢您的帮助和建议。如果您可以为需要显示此gridview并相应固定列宽的不同屏幕创建多个可视状态,那将非常棒。您可以按照此操作您是否尝试在DefaultGridItemTemplate中降低网格的高度?@KenTucker当然,宽度也是如此。仅由于硬编码宽度属性,屏幕截图上有7列。不过,这些差距并没有对此做出反应。看看这个帖子@KenTucker@thankyou的链接。保证金的负值会起作用,如果没有其他帮助,我会使用它。我不确定它是否适合任何布局。早在WPF中就有
细胞间隔
,但在UWP中不存在=(您需要一个UniformGrid
。没有内置的,但您应该可以在谷歌上轻松找到。我不能。我的软件将用于平板电脑和PC。也许我误解了您的意思,但您是否建议为几乎无限数量的显示器手动创建配置?如果是,则很遗憾不是一个选择。不过谢谢你的主意^-^
<local:ExtendedGridView x:Name="gridView" Margin="0"
IsSwipeEnabled="True"
IsItemClickEnabled="True"
SelectionMode="Single"
ItemsSource="{Binding GroupCollection}"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<local:ExtendedGridView.DataContext>
<local:MainViewModel/>
</local:ExtendedGridView.DataContext>
<local:ExtendedGridView.Resources>
<DataTemplate x:Key="DefaultGridItemTemplate">
<Grid Width="100*" Height="60*" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<local:ExtendedListView Margin="0"
IsSwipeEnabled="False"
IsItemClickEnabled="True"
ItemsSource="{Binding Group}">
<local:ExtendedListView.ItemContainerStyle>
<Style
TargetType="ListViewItem">
<Setter
Property="HorizontalAlignment"
Value="Stretch" />
<Setter
Property="VerticalAlignment"
Value="Stretch" />
</Style>
</local:ExtendedListView.ItemContainerStyle>
<local:ExtendedListView.Resources>
<DataTemplate x:Key="DefaultInnerListItemTemplate">
<TextBlock Text="{Binding Data}"
FontSize="12" Foreground="Green"/>
</DataTemplate>
</local:ExtendedListView.Resources>
<local:ExtendedListView.ItemTemplate>
<Binding Source="{StaticResource DefaultInnerListItemTemplate}"/>
</local:ExtendedListView.ItemTemplate>
</local:ExtendedListView>
</Grid>
</DataTemplate>
<ItemsPanelTemplate x:Key="DefaultGridPanelTemplate">
<WrapGrid MaximumRowsOrColumns="7" Orientation="Horizontal" HorizontalChildrenAlignment="Stretch" VerticalChildrenAlignment="Stretch">
</WrapGrid>
</ItemsPanelTemplate>
</local:ExtendedGridView.Resources>
<local:ExtendedGridView.ItemContainerStyle>
<Style
TargetType="GridViewItem">
<Setter
Property="HorizontalAlignment"
Value="Stretch" />
<Setter
Property="VerticalAlignment"
Value="Stretch" />
</Style>
</local:ExtendedGridView.ItemContainerStyle>
<local:ExtendedGridView.ItemTemplate>
<Binding Source="{StaticResource DefaultGridItemTemplate}"/>
</local:ExtendedGridView.ItemTemplate>
<local:ExtendedGridView.ItemsPanel>
<Binding Source="{StaticResource DefaultGridPanelTemplate}"/>
</local:ExtendedGridView.ItemsPanel>
</local:ExtendedGridView>