2

我有一个部分透明的 PNG 文件。我希望能够点击透明区域并点击非透明区域。

例如。在此图像的透明区域下方是一个按钮。当我单击这个透明区域时,应该单击该按钮。

我从下面的代码开始,但我似乎无法让它工作:

private void Image_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
    Image image = (Image)sender;
    Point mousePoint = e.GetPosition(image);
    CroppedBitmap cb = new CroppedBitmap(image.Source as BitmapSource, new Int32Rect((int)mousePoint.X, (int)mousePoint.Y, 1, 1));                          

    byte[] pixels = new byte[4];
    cb.CopyPixels(pixels, 4, 0);

    if (pixels[3] != 0)
    {
       image.IsHitTestVisible = true;
    }
    else
    {
       image.IsHitTestVisible = false;
       e.Handled = true;
    }            
}

我也尝试过引发冒泡事件,但仍然没有运气。

有任何想法吗 ?

4

0 回答 0