[英]Disable tap event on transparent part of image in WP7/WP8
我在Windows手機項目中使用了一些透明圖像。 讓我說我的Origanal圖像大小是400 x 100。
將圖像切割成四個不同的部分后,它看起來像這樣。 第一個箭頭是活動的,休息部分是透明的,但圖像大小是相同的400 x 100.我對其余三個箭頭做同樣的事情。 我將它們切成活動部分,而休息部分將是透明的,尺寸將是400 x 100.所以當我將所有4個圖像放在網格中時,它將顯示如上圖像。
我想獲得每張圖片的點擊事件。 有什么方法我可以得到活動部分均值的點擊事件,它有一些值平均顏色值不是透明區域或圖像的非活動部分。 一旦我點擊第一張圖片,它就會給我一張該圖像的事件。 當我點擊第二張圖像時,它會給我第二張圖像的點擊事件。 但是當我點擊圖像時,它只給我一個點擊事件,因為它占據了整個寬度和高度,而其他圖像也是相同的大小。 請建議任何解決方法。
XAML
<Grid Name="Grid1">
<Image Tag="Image1" Source="1.png"/>
<Image Tag="Image2" Source="2.png"/>
<!-- more images -->
</Grid>
CS
void MouseDown(object sender, MouseButtonEventArgs args)
{
foreach (var img in ((Panel)sender).Children.OfType<Image>())
{
var w = new WriteableBitmap(img, null);
var p = args.GetPosition(img);
if (w.Pixels[w.PixelWidth * (int)p.Y + (int)p.X] != 0)
{
MessageBox.Show(string.Format("You clicked {0}!", img.Tag));
args.Handled = true;
break;
}
}
}
像這樣附加處理程序
Grid1.AddHandler(UIElement.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(MouseDown), false);
命名空間
using System.Linq;
using System.Windows.Media.Imaging;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.