【发布时间】:2011-12-15 11:09:16
【问题描述】:
我有一个包含两个用户控件的窗口,一个带有列表视图的用户控件和一个带有其他控件的用户控件。
类似这样的:
+-------------------------------------------------+
| header stuff |
+---------------------------+---------------------+
| usercontrol with listview | another usercontrol |
+-------------------------------------------------+
| footer stuff |
+-------------------------------------------------+
问题:在分辨率较低的屏幕上,只能看到 3 列中的 2 列,您需要滚动才能看到第三列。我想通过根据宽度动态设置是否显示 1,2 或 3 列来避免水平滚动。另一个问题是名称可以 很长,所以listview中item的宽度都和最长的名字一样宽。
列表视图代码:
<ListView Name="lstContacts"
ItemsSource="{Binding Path=Contacts}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{StaticResource RoundedItem}"
SelectionMode="Single"
HorizontalContentAlignment="Center"
VerticalAlignment="Top"
HorizontalAlignment="Stretch" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="3">
<TextBlock FontWeight="Bold" FontSize="20" Text="{Binding Path=Identifier}" HorizontalAlignment="Center" />
<TextBlock FontSize="16" Text="{Binding Path=Name}" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="3" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
关于如何解决这个问题的任何想法?
也许列表视图是个糟糕的选择?
谢谢。
【问题讨论】: