【问题标题】:Inner Items in UWP Grid not stretching XAMLUWP 网格中的内部项目不拉伸 XAML
【发布时间】:2015-11-27 10:17:00
【问题描述】:

在此列表视图中我的项目未跨越屏幕宽度时遇到问题。抱歉,如果我的代码草率。这点有点新意。我确实有类似代码的类似页面。

提前致谢!

不是完整的代码 - 不确定您是否需要它。

<ListView x:Name="listView" DataContext="{Binding ServicesCvs}" ItemsSource="{Binding}" Margin="0,80,0,0" HorizontalContentAlignment="Stretch">

                   <ListView.ItemTemplate>

                    <DataTemplate>
                        <Grid>

                                <Button Command="{Binding DataContext.SelectServiceCommand, ElementName=serviceSelectionPage}"
                                    CommandParameter="{Binding Text, ElementName=ServiceIdTextBlock}">
                                    <StackPanel Orientation="Horizontal" Margin="0,0,0,0">
                                    <Grid>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto"/>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="0*"/>
                                            <ColumnDefinition Width="1*"/>
                                            <ColumnDefinition Width="1*"/>
                                            <ColumnDefinition Width="1*"/>
                                            <ColumnDefinition Width="1*"/>
                                            <ColumnDefinition Width="Auto"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="ServiceIdTextBlock" Grid.Column="1" FontFamily="Arial" Text="{Binding ServiceId}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Foreground="#FF18417C" Margin="10,0,0,0"/>
                                        <TextBlock x:Name="ServiceType" Grid.Column="2" FontFamily="Arial" Text="{Binding ServiceTypeId}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Foreground="#FF414B59"/>
                                        <TextBlock x:Name="AssetId_TextBlock" Grid.Column="3" FontFamily="Arial" Text="{Binding AssetId}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Foreground="#FF4D7CC1"/>
                                        <TextBlock x:Name="ProductItemId_TextBlock" Grid.Column="4" FontFamily="Arial" Text="{Binding ProductItemId}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Foreground="#FF414B59"/>

                                    </Grid>
                                </StackPanel>
                                </Button>
                            </Grid>

                    </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

【问题讨论】:

    标签: wpf xaml uwp


    【解决方案1】:

    把它放在你的 ListView 中,它也可以在 Designer 中工作

    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListView.ItemContainerStyle>
    

    正如 Mark Feldman 所说,移除 StackPanel 并设置按钮的 Horizo​​ntalContentAlignment="Stretch"。

    【讨论】:

    • 非常感谢! XAML 让我的生活更轻松了!
    【解决方案2】:

    两个问题:

    1. 设置按钮的HorizontalContentAlignment="Stretch"。您的子控件可以指定拉伸,但它们只会拉伸到父控件提供给它们的任何空间。
    2. 移除水平 StackPanel。 StackPanel 会覆盖拉伸并有效地表示“保留子控件布局所需的尽可能多的空间,仅此而已”。

    【讨论】:

    • 谢谢马克!非常感谢!
    【解决方案3】:

    我不确定这是否与您遇到的问题相同,但让我对 listview/gridview 疯狂的一件事是 容器 不会伸展。模板会拉伸,但只会拉伸到容器,默认情况下不会拉伸。

    解决方法是通过将类似内容添加到您的资源(在页面上或在 app.xaml 资源字典中:

    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
    

    你不会在设计器中看到结果(!!!)但是当你运行它时,它应该拉伸项目的内容以填满屏幕

    希望对你有帮助!

    【讨论】:

    • ListViewItem 上设置HorizontalContentAlignment="Stretch" 和在父DataTemplate 上设置HorizontalAlignment="Stretch" 控制就足够了。
    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2019-03-19
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多