2011-06-27 67 views
0

我對這件小事有這麼多麻煩,我希望有人能回答。Windows Phone 7,筆觸顏色的條件語句可能嗎?

我有一個名爲「三公」使用默認的Stroke="#FF123123",如果有人點擊了矩形,它改變筆觸顏色(邊框),以

Three.Stroke = new SolidColorBrush(Colors.Yellow); 

矩形如果有人點擊了一遍,我會就像它要變回原來的顏色Stroke="#FF123123"。我已經有了這個代碼,這不是問題。問題是如何創建條件語句以將其更改回來,前提是首先對其進行了更改?

我不能做的條件語句:

「如果(Three.Stroke == Colors.Yellow){}」

,因爲我收到的錯誤:

Operator '==' cannot be applied to operands of type 'System.Windows.Media.Brush' and 'System.Windows.Media.Color'

回答

1

保持一個某處存在兩個筆刷實例的數組。如果矩形的畫筆是其中的一個,則切換到另一個畫筆(而不是現場創建新實例)。

錯誤很簡單:您正試圖將筆刷本身與筆刷的可能顏色進行比較。你可能確定當前畫筆的顏色並進行比較,但上述方法可能更簡單。

+0

嗨卡爾,請您提供如何做到這一點的編碼例子嗎?我正在學習C#的同時做這個應用程序,正如你所期望的那樣,就像切片手腕。 – Ryan

0

這不是對你的問題的直接回答,但也許而不是一個Rectangle你可以使用ToggleButton並聲明應用基於IsChecked屬性的樣式?

0

Stroke屬性類型爲Brush,其中SolidColorBrush是一個子類。如果您要訪問的SolidColorBrush的屬性,你需要的Stroke值轉換爲SolidColorBrush

Color currentColor = ((SolidColorBrush)Three.Stroke).Color; 

if (currentColor == Colors.Yellow) {}