WPF-删除listview gridview

时间:2017-12-21 14:07:32

标签: wpf xaml listview

我是WPF的新手。在WPF应用程序中,我使用了Listview

显示下面列表视图的快照: -

enter image description here

问题是列表视图(gridview)中网格列标题和垂直滚动条之间的空白区域

我认为它是因为网格的最后一个空白列是否有任何方法可以删除空白列或任何对齐属性,以扩展我的列“设备名称”的宽度

以下是我的Listview-Gridview的XAML

 <ListView x:Name="lstviewDevices"  Height="263"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalAlignment="Left" Margin="37,89,0,0" VerticalAlignment="Top" Width="128" SelectionChanged="lstviewDevices_SelectionChanged">
 <ListView.Resources>

             <Style TargetType="{x:Type GridViewColumnHeader}">
                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                    <Setter Property="Background" Value="#adb8ca" />
                    <Setter Property="Foreground" Value="#fff" />
                    <Setter Property="FontSize" Value="15" />
                    <Setter Property="FontFamily" Value="sans-serif" />
                    <Setter Property="FontWeight" Value="SemiBold" />

                    <!--<Setter Property="Margin" Value="3,0,-7,1" />-->
                </Style>
                <Style TargetType="{x:Type ListViewItem}">
                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                    <Setter Property="Background" Value="White" />
                    <Setter Property="Foreground" Value="#337ab7" />
                    <Setter Property="FontSize" Value="13" />
                    <Setter Property="FontFamily" Value="Roboto" />

                </Style>
            </ListView.Resources>
            <ListView.View>
                    <GridView>
                    <GridViewColumn   Header="Device Name" Width="Auto"  DisplayMemberBinding="{Binding DeviceName}"/>
                </GridView>
            </ListView.View>


        </ListView>

是否有相同的输入?

提前致谢

2 个答案:

答案 0 :(得分:1)

我稍微修改了你的代码..尝试在listview中设置填充并根据你的要求进行修改

   <ListView x:Name="lstviewDevices" Padding="0,0,-3,0"  Height="263"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalAlignment="Left" Margin="37,89,0,0" VerticalAlignment="Top" Width="228" >
            <ListView.Resources>

                <Style TargetType="{x:Type GridViewColumnHeader}">
                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                    <Setter Property="Background" Value="#adb8ca" />
                    <Setter Property="Foreground" Value="#fff" />
                    <Setter Property="FontSize" Value="15" />
                    <Setter Property="FontFamily" Value="sans-serif" />
                    <Setter Property="FontWeight" Value="SemiBold" />

                    <!--<Setter Property="Margin" Value="3,0,-7,1" />-->
                </Style>
                <Style TargetType="{x:Type ListViewItem}">
                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                    <Setter Property="Background" Value="White" />
                    <Setter Property="Foreground" Value="#337ab7" />
                    <Setter Property="FontSize" Value="13" />
                    <Setter Property="FontFamily" Value="Roboto" />

                </Style>
            </ListView.Resources>
            <ListView.View>
                <GridView>
                    <GridViewColumn   Header="Device Name" Width="Auto"  DisplayMemberBinding="{Binding DeviceName}"/>
                </GridView>
            </ListView.View>


        </ListView>

答案 1 :(得分:0)

您可以使用网格定义列宽,然后将网格视图与网格绑定。

<Grid Grid.Row="1">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <Grid Grid.Column="0" x:Name="col1"/>
                    <Grid Grid.Column="1" x:Name="col2"/>
                </Grid>
                <ListView Grid.Row="1">
                    <ListView.View>
                        <GridView>
                            <GridView.Columns>
                                <GridViewColumn Header="col1Header" Width="{Binding ElementName=col1, Path=ActualWidth}">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding}"/>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="col2Header" Width="{Binding ElementName=col2, Path=ActualWidth}">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding}"/>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                            </GridView.Columns>
                        </GridView>
                    </ListView.View>
                </ListView>