2010-03-10 52 views
0

在視圖框內(在DockPanel內部)使用圖像,我創建了一個圖像,該圖像在wpf應用程序中隨窗口縮放。如何使縮放圖像在WPF中具有可點擊區域

<Viewbox HorizontalAlignment="Left" Name="viewbox1" VerticalAlignment="Top" Stretch="Uniform" StretchDirection="UpOnly"> 

    <Image Height="438" Name="image1" Stretch="Uniform" Width="277" Source="/MyAPP;component/Images/TicTacToeBoardForExample.png" MouseDown="image1_MouseDown" /> 
</Viewbox> 

如何使點擊時畫面的特定區域運行不同的代碼?

我希望以這樣一種方式來做到這一點,無論圖像尺寸是多大(在窗口大小調整時),所需的確切區域,與圖像完美匹配,以便點擊時總會觸發相應的對應該地區的代碼即將運行。

回答

0

您確切的需求尚不清楚,但如果您查看FrameworkElement上的TranslatePoint和PointToScreen方法,將會很有幫助。

0

我曾經需要做類似的事情。 所做的是將按鈕放在圖像上。然後你把他們的不透明度設置爲0或3.0,這樣你就不會看到按鈕,但仍然可以點擊它們。 正確添加後,按鈕可以隨圖像一起調整大小。

1

斷電記憶功能,你可以做這樣的事情:

public void image1_MouseDown(object sender, MouseEventArgs e) 
{ 
    var pos = e.GetPosition(viewbox1); 
    if (/* pos in range 1 */) DoTheThingInRange1(); 
    else if (/*pos in range 2*/) DoTheThingInRange2(); 
    else if (/*pos in range 3...*/) DoTheThingInRange3(); 
    //so on... 
} 

HTH