Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在UWP中创建具有固定列数的栅格视图?_C#_.net_Xaml_Uwp - Fatal编程技术网

C# 如何在UWP中创建具有固定列数的栅格视图?

C# 如何在UWP中创建具有固定列数的栅格视图?,c#,.net,xaml,uwp,C#,.net,Xaml,Uwp,我正在尝试为我的应用程序创建日历组件。目前,我正在开发一个日历视图,该视图显示一个月7天,其中每天都是一个事件列表 为此,我需要通知GridView,我总是希望它的格式能够在每一行中容纳7个元素,并且它们之间没有间隙。基础集合始终包含七个元素中的多个 我目前拥有的(ExtendedGridView/ExtendedListView与基本的GridView/ListView相同,不进行任何视觉转换): 它目前的样子: 我对使用XAML相当陌生,所以也许我应该采取完全不同的方法。非常感谢您的帮

我正在尝试为我的应用程序创建日历组件。目前,我正在开发一个日历视图,该视图显示一个月7天,其中每天都是一个事件列表

为此,我需要通知
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>