列表视图项目内容未填充宽度



下面是一些 XAML 代码,我用来绑定包含体系结构映像的项列表。我的图像显示正确,但未填充列表视图项的宽度,尽管高度已正确填充。我的图像也是方形的,所以我知道这不会发生,因为图像没有明显的失真。

此外,我注意到 ListViewItem 具有浅灰色背景色,它应该是透明的,或者 null/non。

有人知道如何正确绑定吗?

                <ListView x:Name="listView_Architecture" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Disabled" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Visible" HorizontalContentAlignment="Stretch" SelectionChanged="listView_Architecture_SelectionChanged">
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                    <ListView.ItemContainerStyle>
                        <Style TargetType="{x:Type ListViewItem}">
                            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsVisible}" Value="True">
                                    <Setter Property="Visibility" Value="Visible" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsVisible}" Value="False">
                                    <Setter Property="Visibility" Value="Collapsed" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsSelected, Mode=TwoWay}" Value="True">
                                    <Setter Property="IsSelected" Value="True" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsSelected, Mode=TwoWay}" Value="False">
                                    <Setter Property="IsSelected" Value="False" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </ListView.ItemContainerStyle>
                    <ListView.View>
                        <GridView AllowsColumnReorder="False">
                            <GridView.ColumnHeaderContainerStyle>
                                <Style TargetType="{x:Type GridViewColumnHeader}">
                                    <Setter Property="Visibility" Value="Collapsed"/>
                                </Style>
                            </GridView.ColumnHeaderContainerStyle>
                            <GridViewColumn>
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <Image Stretch="Fill" Source="{Binding SetupImage, Converter={StaticResource ImageToSourceConverter}}"/>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>

很难理解你在那里实际问的是什么。

您首先提到图像不适合完整的尺寸,然后跳到灰色背景,然后最终谈论绑定。问题到底是什么?

我会回答你第一个。其他的很容易,我想你会自己找到这些答案。绑定很难理解,Visual Studio中的输入窗口将为您提供有关您在绑定中做错了什么的所有信息

映像

没有占用所有可用空间的原因是映像不知道那里有多少可用空间。

当测量 ListView 并排列其子项时,它将计算高度值并将其设置为其子项,以便子项知道高度,但不会在每个子项上设置宽度。因此,您的图像找不到要从中接收可用宽度的祖先,因此它不知道要采用什么宽度值进行拉伸,因此它将以正常大小显示,因为这是没有找到其他值时的默认值。

如果要测试此行为,只需以列表视图项的样式设置固定宽度值。如果将该值设置为 200 像素,则图像将被拉伸到 200 的宽度。虽然当你不设置任何宽度时,不会找到图像知道如何拉伸自己的值。

这么简单。:)

相关内容

  • 没有找到相关文章

最新更新