Sliverlight模板中控制項的樣式變化

2021-06-16 02:28:10 字數 1648 閱讀 8986

在 運用silverlight的過程當中,遇到一些關於模板控制項的樣式問題,相信用silverlight做過demo的都會用到一些定義好的模板控制項,這 樣的控制項的樣式如果是在模板中已經定義好的話,那麼在執行起來後就很難去改變,當然你也可以運用silverglight toolkit中已經定義好的一些顏色樣式來進行一些基本的樣式控制,但是如果你需要的顏色,字型並不在其中的話,那麼你就需要自己來實現這個功能,而且 這樣也更有利於靈活的控制,下面我列舉了在執行起來後仍然可以改變樣式的幾個方法:

方法一:series template(系列模板), 顧名思義,也就是我們會根據需要的顏色等屬性的不同建立相對應一系列的模板,如:現在有三種顏色紅、綠、藍,那麼我們可以定義乙個系列模板**如下,

.....可以定義好顏色、字型等屬性

.....

.....

在頁面當中我們會有乙個button應用這些模板,如下:

然後在我們需要顏色改變的時候替換模板,比如我有乙個顏色選擇器,當我改變選擇器的顏色的時候我們就可以根據顏色改變該button所運用的模板,如下:

public void switchcolor(string colorname)

這樣我們就完成了乙個模板控制項的樣式了。

方法二:templatebinding 模板繫結方式: 如button 有foreground、background之類的屬性,那麼在模板中可以定義同樣的屬性如:

如果有個乙個button用到此style 如:

那麼在後台改變顏色的時候,我們就可以隨時改變btnunlikeforeground 和btnunlikebg 的顏色了,如:

public void backcolor_changed(color color)

通 過以上方法,我們就可以在執行時改變這個buton的樣式了,但是請注意,並不是每個屬性都能這樣設定,如果button或者你將會要運用style的控 件它並沒有在樣式中定義的一些屬性,那麼以上的方法是無效的,也就是說在style中定義的一些屬性,必須是你將要應用到控制項中它本身存在的屬性,當然如 果你繼承了那個控制項的話那就另說了。

方法三: themes  需要建立乙個themes 資料夾,然後在其中建立相應的theme檔案,這個就類似於css形式,見圖:

其中generic.xml 檔案比較特殊,請看下面的**

....

那麼btncombutton 如何定義呢,我們需要建立乙個自定義控制項btncombutton如下:

這 樣我們可以直接獲取到模板裡面的控制項,也可以給自定義控制項新增上更多的屬性來適應我們的需求,麻煩的是所有用到模板的控制項需要重新寫,而且暫時還沒有能找 到及時改變顏色的解決方法,因為這種方法只是在btncombutton物件初始化的時候就確定好了其顏色等其他屬性,還不能隨時進行改變。

DevExpress中DateEdit控制項漢化

在網上找到好多這方面的資料,可是我卻不知道把那些 放 歪打誤撞,終於對了,我要漢化的只有裡面的 clear和today button frmmain.designer.cs檔案中 加入一段 public class cheditlocalizer localizer return base.getl...

中控問題彙總

1 通過軟體檢查是否設定裝置啟動,要確定全部打勾 2 有時候軟體上燈亮卻無法控制,首先重啟中控 1 檢查電腦是否接在了電源箱上 2 通過拔插強電確定電腦有沒有開啟加電啟動,如果沒有請設定 1 如果ping不通,無法確認位址,可以通過搜ip軟體搜尋 2 如果搜不到通過串列埠發碼軟體恢復中控初始ip位址...

c 中的objectDataSource控制項

objectdatasource是web開發中應用最廣的資料來源,能很容易的進行資料庫切換。當然使用objectdatasource最大的優點是他支援 3層架構 objectdatasource用來將乙個類作為做為資料來源,typename屬性為資料來源類的全名,有deletemethod inse...