그룹화 된 데이터를 표시하는 WinRT GridView를 사용하고 있습니다. 그리드의 각 항목 그룹 사이에 20px 간격을 지정하는 디자인 요구 사항이 있습니다.Windows 8.1 GridView에서 그룹 여백 설정
ItemsPanelTemplate에 ItemsWrapGrid를 사용할 때 GroupPadding 속성을 설정할 수 있지만 GroupMargin 속성이 없음을 알았습니다.
ItemsWrapGrid를 StackPanel로 대체하여 GroupStyle.Panel (여기서 VariableSizedWrapGrid를 지정하고 그룹 여백을 설정할 수 있음)을 설정할 수있었습니다. 이는 시각적 디자인의 요구 사항을 완벽하게 충족하지만 불행히도 StackPanel을 사용하면 GridView에서 가상화를 사용할 수 없으므로 성능이 저하 될 수 있습니다.
또한 ItemsWackGrid를 (가상화를 지원하는) ItemsStackPanel로 대체하려고했지만 다양한 항목이있는 그룹을 스크롤 할 때 이상한 가로 스크롤 막대 동작을 제공합니다. 스크롤 막대가 커지고 작아집니다.
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Margin="20,0,0,0"
Background="Red"
GroupPadding="0,0,80,0">
</ItemsWrapGrid>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
여백 속성은 전체 그리드에 적용 여기
내가 지금까지 무엇을하는 코드이다. GroupPadding 속성은 그룹 사이의 간격을 올바르게 설정하지만 각 그룹 사이에 투명한 간격을두고 각 그룹 (이 예제에서는 빨간색)에 배경색을 설정해야합니다.TL; DR : 이 난에 그룹 여백을 설정할 수 있습니다 ItemsPanel로 ItemsWrapGrid와 그룹화 된 데이터와의 GridView를 원한다.
시도해 주셔서 감사합니다.하지만 제 질문에 표시된 것처럼 이미 GroupStyle 설정을 지정해 보았습니다. GridView.ItemsPanel이 ItemsWrapGrid가 아닌 경우에만 작동합니다. 불행히도, GroupStyle.ContainerStyle Property는 더 이상 사용되지 않으며, GridView ItemsPanel로 기본 ItemsWrapGrid를 사용하면 8.1에서 실제로 무시됩니다. –
설명이 추가되었습니다. GroupStyle의 Panel에 여백을 추가합니다. –
다시 한번 감사 드리지만 언급 한 바와 같이 GridView.ItemsPanel이 ItemsWrapGrid가 아닐 때 솔루션은 Win 8.1에서만 작동합니다. 자세한 내용은 http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.itemscontrol.groupstyle.aspx를 참조하십시오. 잘 작동 할 수도 있지만 성능상의 이유로 ItemsWrapGrid를 사용하지 않을 것입니다. –