编程语言
首页 > 编程语言> > C#WPF想要点击Stackpanel的孩子

C#WPF想要点击Stackpanel的孩子

作者:互联网

我正在使用StackPanels.在我的应用程序中,我必须显示具有3到x图像的多重tiff,并且在我点击其中一个之后必须在新窗口中打开它们.

显示它们很简单:

public void Bilder_anzeigen(string path)
{
    TiffBitmapDecoder decoder = new TiffBitmapDecoder(new Uri(path), BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

    foreach (var i in decoder.Frames)
    {
        Image myImage = new Image();
        myImage.Source = i;
        Stackpanel_Tiff.Children.Add(myImage);
    }
}

但是如何让孩子点击StackPanel?有一个MouseDown事件,但在它被引发后,我不知道我点击了哪个图像.我只知道有一个点击.如何找到点击的图像?

解决方法:

您可以使用PreviewMouseDown事件和MouoseButtonEventArgs对象的OriginalSource非常轻松地找到单击的图像:

<StackPanel PreviewMouseDown="StackPanel_PreviewMouseDown">
    <Image Source="Images/Add_16.png" Stretch="None" />
    <Image Source="Images/Edit_16.png" Stretch="None" />
    <Image Source="Images/Copy_16.png" Stretch="None" />
</StackPanel>

private void StackPanel_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    if (e.OriginalSource is Image)
    {
        string imageSource = ((Image)e.OriginalSource).Source.ToString();
    }
}

标签:c,net,wpf,stackpanel
来源: https://codeday.me/bug/20190714/1459441.html