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