2012-11-21 47 views
2

我是WPF應用程序的絕對初學者,需要一些幫助。我想要做的是從A點到B點繪製一個矩形,能夠檢測矩形被點擊的時間。所以點擊時會變成黃色,再次點擊時會變成紅色。如何在WPF中繪製可點擊的矩形

+0

與論壇網站不同,我們不使用「謝謝」,或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 刪除 - 從帖子)。 –

+0

@約翰桑德斯wasnt意識到這一點。 – FrostyFire

回答

7

有多種方法可以做到這一點。

  1. 添加一個單擊處理的矩形,並切換從代碼它的顏色背後
  2. 綁定矩形的顏色視圖模型屬性,使用委託指令集上單擊屬性。

如果您剛剛開始使用XAML,第一種方法最簡單(儘管如果您想遵守MVVM,推薦使用#2)。

<Rectangle x:Name="rect" 
    Width="100" Height="100" Fill="Aquamarine" 
    MouseLeftButtonDown="Rectangle_MouseLeftButtonDown" /> 

和代碼隱藏處理程序:

bool toggle = false; 

private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    rect.Fill = new SolidColorBrush(toggle ? Colors.Aquamarine : Colors.DarkRed); 
    toggle = !toggle; 
} 
+0

謝謝,就是我在找什麼。這應該讓我開始。+1 – FrostyFire

5

使用Rectangle控制。

<Rectangle 
    Height="100" 
    Width="100" 
    MouseLeftButtonUp="Rectangle_MouseLeftButtonUp_1" 

其中Rectangle_MouseLeftButtonUp_1是包含類的事件處理程序。

請注意,除非矩形具有背景,否則必須單擊邊框。背景可以是白色的,但是如果它是可點擊的,則需要指定它。

+0

感謝您的帖子。它沒有進入到糊狀作爲我標記爲答案的細節,但它應該有助於我開始 – FrostyFire