2017-07-18 164 views
1

我有一个分为两列的列表视图。问题是如果列表视图中显示的信息太长,则会发生什么情况。将列表视图划分为列,使用水平滚动(wpf)

如果我做一个固定的宽度,它会削减一些。如果我创建一个自动宽度,那么listview列的初始状态看起来很糟糕。

固定宽度: enter image description here 自动宽度: enter image description here 任何想法,我能做些什么来解决这个问题?

相关XAML:

<ListView Width="Auto" Height="Auto" Margin="10" Background="#092E3E" Foreground="White" ItemsSource="{Binding BackupEvents}" > 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      ... 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListView.View> 
     <GridView AllowsColumnReorder="False"> 
      <GridView.ColumnHeaderContainerStyle> 
       ... 
      </GridView.ColumnHeaderContainerStyle> 

      <GridView.Columns> 
       <GridViewColumn Width="200" Header="Time" DisplayMemberBinding="{Binding LVTime}"/> 

       // auto or fixed? 
       <GridViewColumn Width="Auto"/"520" Header="Details" DisplayMemberBinding="{Binding LVDetails}"/> 
      </GridView.Columns> 
     </GridView> 
    </ListView.View> 
</ListView> 

最好的解决方案,我认为将是如果我能把列大小固定的,但是文本/列表条目,如果需要包装成多行。但我不知道该怎么做......

+0

那么,如果你看以Windows资源管理器为例,他们切断了数据。滚动对我来说似乎是一个奇怪的解决方案...但是这对于https://ux.stackexchange.com/ –

+0

中的人员可以将最小宽度设置为更具吸引力的大小MinWidth =“” –

+0

解决方法I'现在使用的是将列宽设置为自动,但在标题中放置了很多空格,即“________ Details ________”。我觉得它很丑,但它现在起作用。 –

回答

0

您可以将数据的一定宽度后显示省略号

+0

你能详细说一下吗?我不明白 –

0

最好的解决方案,我认为将是如果我能把列的大小固定,但如果需要,可以将文本/列表条目包装成多行。但我不知道该怎么做......

您可以定义一个隐含的TextBlockStyle设置所有TextBlocksTextWrapping财产在GridViewWrap

<ListView Width="Auto" Height="Auto" Margin="10" Background="#092E3E" Foreground="White" ItemsSource="{Binding BackupEvents}" > 
    <!-- HERE: --> 
    <ListView.Resources> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Setter Property="TextBlock.TextWrapping" Value="Wrap" /> 
     </Style> 
    </ListView.Resources> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      ... 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListView.View> 
     <GridView AllowsColumnReorder="False"> 
      <GridView.ColumnHeaderContainerStyle> 
       ... 
      </GridView.ColumnHeaderContainerStyle> 

      <GridView.Columns> 
       <GridViewColumn Width="200" Header="Time" DisplayMemberBinding="{Binding LVTime}"/> 

       // auto or fixed? 
       <GridViewColumn Width="Auto"/"520" Header="Details" DisplayMemberBinding="{Binding LVDetails}"/> 
      </GridView.Columns> 
     </GridView> 
    </ListView.View> 
</ListView> 
+0

这不起作用......你确定我的专栏内容是文本块吗? –