Xaml 包含GridView和ListView的ListView
我需要创建一个带有语义缩放的xaml页面,其中放大的视图同时包含GridView和ListView。我从基本网格应用程序模板开始 为了实现这一点,我让语义缩放控件的放大视图显示一个列表视图,而列表视图包含我需要实际将数据显示为ListViewItems的ListView和GridView控件。这在某种程度上是可行的-问题是鼠标按下或点击动画发生在父ListView的整个子控件上,而不是子元素上。如果我不需要支持语义缩放,这种布局会很简单 所以,我的问题是,这是实现这种布局的最佳方式,还是我遗漏了什么。如果这是最好的方法,是否可以控制行为,以便子项元素在选择时具有正确的动画效果 附加信息 GridView或ListView的选择取决于集合中项目的类型。在此示例中,grp 1、3和4(以网格显示)都是类型为Xaml 包含GridView和ListView的ListView,xaml,listview,gridview,windows-8,semantic-zoom,Xaml,Listview,Gridview,Windows 8,Semantic Zoom,我需要创建一个带有语义缩放的xaml页面,其中放大的视图同时包含GridView和ListView。我从基本网格应用程序模板开始 为了实现这一点,我让语义缩放控件的放大视图显示一个列表视图,而列表视图包含我需要实际将数据显示为ListViewItems的ListView和GridView控件。这在某种程度上是可行的-问题是鼠标按下或点击动画发生在父ListView的整个子控件上,而不是子元素上。如果我不需要支持语义缩放,这种布局会很简单 所以,我的问题是,这是实现这种布局的最佳方式,还是我遗漏了
NewsFull
的集合,其余(以列表显示)都是类型为HeadlineOnly
,这两种类型都继承自新闻库
页面布局(放大)应该是这样的
Title
grp 1 grp 2 grp 3 grp 4 grp 5
[g][g][g][g] [_list item_] [g][g][g][g][g] [g][g][g] [_list_item_]
[g][g][g][g] [_list item_] [g][g][g][g][g] [g][g][g] [_list_item_]
[g][g][g][g] [_list item_] [g][g][g][g] [g][g] [_list_item_]
[g][g][g] [_list item_] [g][g][g][g] [g][g]
Title
grp 1 grp 2 grp 3 grp 4 grp 5
[summary] [summary] [summary] [summary] [summary]
其中,[g]
是一个网格视图项,[\u list\u item\u]是一个列表视图项
缩小视图是这样的
Title
grp 1 grp 2 grp 3 grp 4 grp 5
[g][g][g][g] [_list item_] [g][g][g][g][g] [g][g][g] [_list_item_]
[g][g][g][g] [_list item_] [g][g][g][g][g] [g][g][g] [_list_item_]
[g][g][g][g] [_list item_] [g][g][g][g] [g][g] [_list_item_]
[g][g][g] [_list item_] [g][g][g][g] [g][g]
Title
grp 1 grp 2 grp 3 grp 4 grp 5
[summary] [summary] [summary] [summary] [summary]
也许您可以尝试使用ItemContainerStyleSelector根据项目类型或类似类型交换项目的容器?这样,您可以将一个组设置为具有包装布局容器,另一个组可以仅为stackpanel?该设计在我看来是合理的。您遇到的问题只是“是否可以控制行为,以便子项元素在选择时具有正确的动画效果?” 这里的问题是,对于不同级别的UI对象,您可能缺乏抽象。我假设您只是使用一个xaml对象编写了这个大控件,然后将样式设置搞砸了。我认为,您需要将UI分解为以下组件级别:
希望这有帮助您能澄清一下吗?[g]是指GridView还是GridViewItem?同样,[list item]是否意味着是一个ListView?SemanticZoom的ZoomedInView的直接子项是什么?[g]实际上是一个网格视图项,[list_item]是一个列表视图项。当前我的标记包含一个SemanticZoom,具有放大和缩小视图。放大视图当前将GridView作为其唯一子视图,并缩小了ListView。不过,我知道这并没有给我想要实现的目标。那么,有什么具体的原因让你想要gridview项目或列表视图项目呢?是您真正需要的-只是根据组中对象的类型,每个组的不同布局?例如,在您的案例中,第一组的包装布局和第二组的垂直堆叠布局等?这几乎是问题的症结所在,是的。我已经在使用DataTemplateSelector来满足我的大部分需求,而且效果很好。然而,问题是试图控制项目的高度和宽度大小,根据项目类型控制项目的列跨度和行跨度等。这似乎是可能的,但是现在它给我带来了太多的痛苦,以至于我似乎用了错误的方法——因此询问原始场景是否可行。您是否尝试过使用ItemContainerStyleSelector根据项目类型或类似内容交换项目的容器?这样,您可以将一个组设置为具有包装布局容器,而另一个组仅可以是stackpanel?