【发布时间】:2015-05-13 04:37:29
【问题描述】:
我在检索 Listbox 中间项详细信息方面遇到了一些问题。我在列表框中水平绑定了一些图像和名称。当我水平滚动列表框时,我需要获取中间图像名称。
我该怎么做?
【问题讨论】:
标签: c# windows-phone-8 listbox
我在检索 Listbox 中间项详细信息方面遇到了一些问题。我在列表框中水平绑定了一些图像和名称。当我水平滚动列表框时,我需要获取中间图像名称。
我该怎么做?
【问题讨论】:
标签: c# windows-phone-8 listbox
您正在寻找Horizontal Looping Selector,安装Windows Phone Toolkit即可使用
编辑:
正如你在 cmets 中提到的。这是你可以做的。此代码将检测每个元素在屏幕上可见的程度。使用它获取屏幕上可见的元素以及中间元素。
private void FindVisibleItems(ListBox listbox)
{
var listboxRectangle = new Rect(new Point(0, 0), listbox.RenderSize);
for (int index = 0; index < listbox.Items.Count; index++)
{
double visiblePercent = 0;
ListBoxItem item = listbox.ItemContainerGenerator.ContainerFromIndex(index) as ListBoxItem;
if (item != null)
{
var itemTransform = item.TransformToVisual(listbox);
var itemRectangle = itemTransform.TransformBounds(new Rect(new Point(0, 0), item.RenderSize));
itemRectangle.Intersect(listboxRectangle);
if (!itemRectangle.IsEmpty)
{
visiblePercent = itemRectangle.Height / item.RenderSize.Height * 100;
}
}
System.Diagnostics.Debug.WriteLine(string.Format("Item {0}: {1}% visible", index, Math.Round(visiblePercent)));
}
}
参考:Get the first and last visible element of widows phone listbox
【讨论】: