在wpf中,sytle是乙個非常重要的東西,它是一種對屬性值的處理,其中trigger(觸發器)則是在屬性值的處理中加上條件。
wpf定義了五種trigger來作為觸發條件,分別是:trigger,datatrigger,multitrigger,multidatatrigger,eventtrigger。
下面最簡單的乙個trigger是這樣寫的:
view code
在條件設定中,只要滑鼠移動到button上面時,就可以引動到觸發器,然後設定它的長寬,當滑鼠移開時候,觸發器就會失效,然後就會變到原來的值。這個觸發器以控制項的屬性作為觸發條件。還有時會用到datatrigger,這個一般以控制項datacontext的屬性作為觸發條件。當某個資料值是想要的值時,就可以設定相應的樣式。
有時候也可以先設定乙個依賴屬性,然後根據不同的條件來設定不同的屬性值,再通過datatrigger來設定也是可以的,下面有乙個例子來運用一下datatrigger:
view code
"textbox
" width="
100" height="
50" margin="
10" background="
,path=text,
updatesourcetrigger=propertychanged}"
textchanged=
"textbox_textchanged_1"
>
view code
private好吧~其實上面也只是硬要用一下而已~純屬娛樂。。。當然在很多時候用這個也是很方便的!void textbox_textchanged_1(object
sender, textchangedeventargs e)
}public
string
labelbackground
set }
public
static
readonly dependencyproperty labelbackgroundproperty =dependencyproperty.register(
"labelbackground
", typeof(string), typeof(mainwindow), new propertymetadata(null));
multitrigger,multidatatrigger這兩個和上面差不多,只是多屬性觸發罷了。
eventtrigger是以routedevent作為觸發條件,當指定的路由事件raise時觸發。這個暫時還沒怎麼玩過,等下次用到再說=-=
建立sequence和TRIGGER實現ID自增長
create table s if erptransferlog jobid varchar2 200 not null,startdatetime timestamp not null,enddatetime timestamp not null,usedtime number 10,0 not ...
jQ的select事件和trigger方法的小衝突
方法和事件都不難理解,分開用也都沒問題,但是一起用就有些小問題出現。直接上結論 使用trigger方法觸發乙個文字型別的 input 元素的select事件時,chrome瀏覽器會錯誤的觸發三次,firefox和ie11只會正常觸發一次 解決辦法也簡單,把trigger換成triggerhandle...
關於trigger的muting table異常
研究方法 為測試表建立 insert,delete,update 對應的after,before觸發器,在觸發器中訪問當前表,然後執行測試的 insert,delete,update 語句觸發這個觸發器,檢視是否有異常 ora 04091 table yc.tr1 is mutating,trigg...