我有一个WrapPanel
包含一些图像(缩略图)。
当用户按向左或向右箭头键时,我想显示下一张/上一张图像。
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 属性的原因。无论如何,这会返回显示的当前图像。我要弟弟
更新:好吧,我现在做了一个解决方法。但仍在等待适当的解决方案。
我创建了一个 ListBox 并向其中添加了所有 WrapPanel Children。然后使用SelectedItem
和SelectedIndex
属性选择上一个和下一个项目。