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 Childrens をそれに追加しました。次に、 プロパティSelectedItem
とSelectedIndex
プロパティを使用して、前の項目と次の項目を選択しました。