3

我在 Windows 应用商店(又名 Metro)应用程序 XAML 方面没有经验,所以也许我忽略了一些简单的东西,但根据书籍和示例,垂直滚动条是 ListView 控件的自然部分,除非明确禁用,否则会出现是 ListView 中的不可见项。

但就我的应用程序而言。我有一个典型的列表/详细信息页面,左侧窗格中包含项目 - 它们显示良好,带有滚动条,并且在右侧窗格中选择了项目详细信息。选定的项目包含一组子项目,如果它们很多,它们应该用滚动条显示。我有一个简单的 ListView 定义:

            <ListView 
            x:Name="itemCollection"
            Grid.ColumnSpan="1" 
            SelectionChanged="ItemListView_SelectionChanged"
            ItemsSource="{Binding Elements}" 
            ItemTemplate="{StaticResource Custom80ItemTemplate}" />

奇怪的是,我从来没有看到这个列表的滚动条。只有当我明确地将其模式设置为“可见”时,我才能看到一个滚动条,但没有任何东西可以滚动它!

显然程序认为整个列表都是可见的,所以滚动条是不必要的,但是什么能让它做出这样的判断呢?

4

2 回答 2

5

我终于解决了这个问题。与大多数此类问题一样,错误很愚蠢:拥有此 ListView 的 Grid 控件有一个额外的(错误的)行定义,该行定义的 Height 属性用星号标记,即占用所有剩余空间。但是 ListView 使用的行将高度标记为“自动”,因此它扩展到其项目的整个大小并且从未激活其垂直滚动条。

于 2012-10-02T12:16:36.423 回答
0

尝试将可见性设置为自动。

于 2012-10-02T00:56:40.597 回答