如何获得一个“;对象发送器”;在一种方法中
本文关键字:一种 方法 对象 何获得 一个 | 更新日期: 2024-10-23 16:00:06
在调用MouseUp方法的应用程序中,我有一个15个边框,里面有一个图像。。所有图像都有不同的名称。。因此,我希望他们都把这个方法称为
<GroupBox Width="75" Height="75">
<Border MouseLeftButtonUp="Image_MouseUp1" Background="Transparent">
<Image x:Name="RedPick5_Image" Height="Auto" Width="Auto"/>
</Border>
</GroupBox>
我希望他们所有人都能设置孩子的图像源(如果我理解正确,图像就是边界的孩子)。我该怎么做?
private void Image_MouseUp1(object sender, MouseButtonEventArgs e)
{
//want to set any image that calls this
//something like Sender.Child.Source = ...
}
您需要转换发件人并检查
private void Image_MouseUp1(object sender, MouseButtonEventArgs e)
{
var border = sender as Border; // Cast to Border
if (border != null) // Check if the cast was right
{
var img = border.Child as Image; // Cast to Image
if (img != null) // Check if the cast was right
{
// your code
}
// else your Child isn't an Image her you could hast it to an other type
}
// else your Sender isn't an Border
}
你也可以做这个
private void Image_MouseUp1(object sender, MouseButtonEventArgs e)
{
var border = sender as Border;
if (border == null) // if the cast to Border failed
return;
var img = border.Child as Image;
if (img == null) // if the cast to Image failed
return;
// your code
}
如果图像只是边界的直接子级,则可以这样做:
Image image = (Image)((Border)sender).Child;
image.Source = // Set image source here.
您也可以使用FindName
(Image)(sender as Border).FindName("RedPick5_Image");
它将递归地搜索Border
的子级,以查找名为"RedPick5_Image"的元素。如果找不到具有指定名称的元素,则可能返回null。