Windows Phone 7 Button修改前景色和背景色的問題和解決辦法
private void button1_Click(object sender, RoutedEventArgs e)
{
button1.Background = new SolidColorBrush(Colors.Blue);
button1.Foreground = new SolidColorBrush(Colors.Red);
}
介面截個圖,直觀些:
編譯執行後,按鈕的顏色沒有變化,感覺非常奇怪。於是檢視MSDN的幫助文件,把控制元件更新相關的方法也胡亂試了一通,居然都沒有效果。鬱悶了,覺得奇怪,把程式碼直接複製到建構函式的下面了:
?
1
2
3
4
5
6
public MainPage()
{
InitializeComponent();
button1.Background = new SolidColorBrush(Colors.Blue);
button1.Foreground = new SolidColorBrush(Colors.Red);
}
補充一句,預設情況下Button是黑色背景,白色前景。
編譯執行後,按鈕顏色變了!這說明在程式碼中操作Background和Foreground這兩個屬性也沒問題啊。
想不通了,我再加個按鈕試試吧,於是又增加個button2,在button2的點選操作中做同樣的操作,也是改變button1的前景色和背景色。
問題出現了:
1.如果先點選Button1,還是沒有任何變化,再點選Button2,Button1也沒有變化。
2.如果先點選Button2,Button1的前景色和背景色就變了。
3.我又試了Button2點選響應函式中改變自己顏色,沒有效果。
截圖如下:
我有點暈了,為什麼呢?不過似乎找到了點規律,就是按鈕在其自身的點選響應函式中,修改不了自身的前景色和背景色。
沒想明白,再增加一個按鈕試試吧。這回策略變一下,在每個按鈕的響應函式中,修改另外兩個按鈕的顏色。
又找到了規律:
1.第一次點選某一個按鈕,例如Button1,修改另外兩個按鈕的前景色和背景色,都正常能修改。如圖:
2.第二次點選另一個按鈕,例如Button2,第一次點選過的按鈕顏色不會變。如圖:
3.只要點選過的按鈕,顏色就無法改變了。
我想不明白了,為什麼只要點選過的按鈕,顏色就修改不了了呢?
我又用Silverlight程式試了一下,在SL中沒這個問題,只有在WP7中這個問題存在。
如果真的有這樣的需求,給大家幾個建議:
1.用Blend編輯好按鈕各個狀態的顏色,例如按下和正常狀態的顏色,不在程式碼裡動態改變了。
2.把按鈕設定為透明,後面放個Border,這樣做能改背景色,但前景色就無能為力了。
3.用Image或其它控制元件代替Button,這樣可能會麻煩一些。
如果大家有好的解決辦法,請在下面留言,非常感謝。
相關文章
- 最近遇到的問題和解決辦法
- Redis常見問題和解決辦法梳理Redis
- 浮動元素引起的問題和解決辦法?
- 浮動元素引起的問題和解決辦法
- composer依賴相關的問題和解決辦法
- SQL安裝過程式中的常問題和解決辦法SQL
- 資料庫檔案複製問題和解決辦法資料庫
- input 與 button 的問題 (空隙/不等高/對不齊)及 解決辦法
- 實施vertex compression所遇到的各種問題和解決辦法
- Windows Phone 7中帶題頭的TextBox和PasswordBoxWindows
- windows7不能錄音的解決辦法Windows
- 關於$ is not defined的原因和解決辦法
- Windows7無法訪問Windows 2003共享問題解決Windows
- 手動生成C#的COM包裝類的常見問題和解決辦法C#
- 採用Kindeditor編輯器時,提交、修改無法入庫的原因和解決辦法
- Windows 7下載掉線解決辦法Windows
- 方差與偏差的解釋和解決辦法
- 伺服器卡的原因和解決辦法伺服器
- Windows無法配置此無線連線這個問題的解決辦法Windows
- 跨域問題解決辦法跨域
- Windows 7安裝過程當機的解決辦法Windows
- 最新 IDEA 和 Maven 整合問題和解決IdeaMaven
- HTC Vive遇到的問題解決辦法
- veritas netbackup的問題解決辦法
- ActiveMQ問題分析和解決MQ
- dataguard中MRP無法啟動的問題分析和解決
- ARP攻擊的現象和解決辦法
- 【TUNE_ORACLE】Oracle資料庫與HugePages(三)HugePages常見問題和解決辦法Oracle資料庫
- windows7無法使用無線路由器的解決辦法Windows路由器
- Windows Phone 7 墓碑機制Windows
- Windows Phone 7程式設計Windows程式設計
- Windows作業系統常見故障問題和解決方案Windows作業系統
- svn相關問題解決辦法
- android ANR產生原因和解決辦法Android
- C#中關於DataGridView行和列的背景色-前景色設定C#View
- oracle rac asm 問題的官方解決辦法OracleASM
- 不能訪問windows Installer服務的解決辦法!Windows
- redis分散式鎖的問題和解決Redis分散式