2012-12-05 19 views
2

我有一個C#WPF應用程序,其中有幾個可能的圖像,其中一些圖像中具有不規則形狀。點擊圖片中的不同形狀時,我想生成不同的事件。爲任意圖像實現可點擊的地圖

例如:如果圖像是房子的前面,我想對門把手,門,窗戶,屋頂等

的圖像必須是可調整大小的,當點擊genereate不同的事件。

我可以手動使用網格和形狀,但它似乎應該有一個更優雅的方式。

我以爲我看到了一種技術,可以製作像原始圖像一樣的「陰影」圖像,但每個可點擊的區域都以不同的顏色填充。 (可點擊區域的「顏色圖」。)然後點擊處理程序可以訪問陰影圖像的顏色並引發相應的事件。但是,我無法弄清楚如何在顯示圖像下隱藏陰影圖像,並且仍然使用click事件處理程序來拾取顏色。

我敢肯定,有一個很好的方法來處理這個問題,我只是通常不使用圖像,所以我完全不知道它。

謝謝。

+0

顏色可能只是爲了幫助初始設計/佈局。設置好後,嘗試將不透明度設置爲0.這將使圖像變爲透明,讓您可以看到背後的原始圖像,但點擊會轉到疊加層。 – cadrell0

+0

這可能會起作用,我會試一試。 –

回答

0

如何讓Z圖像中的圖像高於「陰影圖像」並設置topImage.IsHitTestVisible = false;

這會使點擊繞過頂部的可見圖像,直接進入底層的陰影圖像點擊處理程序。

我在生產代碼中使用的另一種技術是從Image派生一個新類並重寫HitTestCore並自己測試像素值,如果它是某種顏色或不透明度,則返回不同的對象。這樣我就可以控制所有的動作。

+0

這工作正常。我可以創建一個圖像,在需要繪製的區域中輕鬆地創建另一個圖像,並根據返回的顏色找出我需要做的事情。尼斯。 –