我有一个WrapPanel
其中包含一些图像(缩略图)。Loop虽然儿童元素,找东西,并访问其兄弟财产
当用户按左或右箭头键,我想显示下一个/上一个图像。
private void frmMain_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right)
{
int j = 0;
foreach (Image child in WrapPanelPictures.Children)
{
if (child.Source == MainPic.Source)
{
MainPic.Source = WrapPanelPictures.Children[j + 1].Source;
}
j++;
}
}
}
另外我尝试了一种LINQ方法,但我是LINQ的初学者。
var imgfound = from r in WrapPanelPictures.Children.OfType<Image>()
where r.Source == MainPic.Source
select r;
MessageBox.Show(imgfound.Source.ToString());
imgfound应该是一个列表,对不对?也许这就是为什么我无法访问Source属性。无论如何,这返回当前图像显示。我想要兄弟姐妹。
UPDATE: 那么我提出了一个解决方法,就像现在一样。但仍在等待一个合适的解决方案。
我创建了一个ListBox并将所有WrapPanel Childrens添加到它。然后使用SelectedItem
和SelectedIndex
属性来选择上一个和下一个项目。
你如何确定你的下一个和以前的起点(CurrentImage)? – WiiMaxx 2013-05-23 14:24:22
@WiiMaxx“MainPic”的来源决定了当前显示的图片。按左右方向键可以改变当前的图像。我想我应该指出/链接缩略图图片和当前显示在一起的图片。由于我不能这样做(但),我必须遍历所有WrapPanel儿童。 – xperator 2013-05-23 14:38:17