在我的Windows8.1WinRT/XAML应用程序中,我有一个具有相应GroupStyle
的分组GridView
<GridView ItemsSource="{Binding Source={StaticResource groupedViewSource}}">
...
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
...
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid
Style="{StaticResource NormalWrapGridStyle}" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
现在,这是全屏视图的版本。我想要的是调整GridView的用户界面,以适应较小的显示宽度,例如在肖像模式。因此,我希望将GroupStyle.HeaderTemplate
调整为适用于较小的标头,而调整GroupStyle.Panel
以减少单个GridView组的边际。
通常情况下,我会使用不同的VisualState进行这样的UI调整,但似乎不可能在VisualState中设置不同的GroupStyle
或更改相应的模板。有什么建议吗?
发布于 2013-10-04 18:35:21
是什么阻止您使用不同的Gridview进行纵向定位?您可以检测当前方向以隐藏/显示适当的内容,有关如何执行此http://www.zubairahmed.net/?p=1032的更多信息,请参阅我的博客帖子
发布于 2014-01-03 17:20:08
在这个问题上,我和@Zubair是一致的。如果你可以为每个方向做多个布局,你就有了一个更好的整体解决方案。如果您愿意,您可以将它们抽象为用户控件。如果愿意,您可以重用数据模板。但是,在单个布局中同时处理方向和监视器缩放是不必要的过度复杂性。
是这样读的:http://blog.jerrynixon.com/2013/12/the-two-ways-to-handle-orientation-in.html
如果你必须按照你想要的方式去做,我不推荐你这样做,你可以看看这个解决方案:http://xaml.codeplex.com/SourceControl/latest#MVA/201311_Blend/XamlSpace/ViewModels/MainPageViewModel.cs如果你喜欢,你可以下载整个项目。再说一次,这不是我会做的。
发布于 2020-12-04 12:37:11
不幸的是,看起来你不能做到这一点,即使是现在,在这么多年后,在W10上。你必须求助于代码:
GridView.GroupStyle.Clear();
清除,或
GridView.GroupStyle.Clear();
GridView.GroupStyle.Add((GroupStyle)Resources["YourGroupStyleKey"]);
无论如何,从你使用VisualStateManager.GoToState()
的代码中进行设置。
https://stackoverflow.com/questions/19135762
复制相似问题