0
같은 높이 UiElements의 목록은 WrapPanel
에 추가하고, 실행이의 항목 수를 얻기 위해이WrapPanel의 첫 번째 행에서 항목 수를 계산하는 방법은 무엇입니까?
과 같은 경우 XAML은
<Grid>
<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView >
</Grid>
입니다 첫 번째 행, 각 항목의 왼쪽 위 모퉁이의 좌표 (목록 뷰 기준)를 계산하려고했는데 각 항목의 세로 오프셋을 첫 번째 항목과 비교하여 첫 번째 행의 항목 수를 얻을 수 있습니다.
그러나 항목의 높이가 다른 경우 코드가 쉽게 손상 될 수 있습니다.
ListView listView = (sender as ListView);
if (listView.Items.Count > 0)
{
UIElement firstItem = ((listView.Items)[0] as UIElement);
double y = firstItem.TranslatePoint(new Point(0, 0), listView).Y;
int counter = 0;
foreach (UIElement item in listView.Items)
{
if ((item.TranslatePoint(new Point(0, 0), listView).Y != y))
{
break;
}
counter++;
}
}
올바른 방법은 무엇입니까?
게시물의 스크린 샷이다 [링크] (http://i.stack.imgur.com/EhTHK.png), 미안 문제 editting에이 내 게시물 ... – kennyzx
그리고 코드는 물론 항목이 UIElements가 아닌 경우 실패합니다. 적어도'ListView.ItemContainerGenerator.ContainerFromItem'을 사용해야합니다. – Clemens
그리고 현재 항목의 위치의 X 값이 이전 위치의 X 값보다 작거나 같은지 확인하지 않는 이유는 무엇입니까? 그것은 랩핑이 발생했다는 표시 일 것입니다. – Clemens