在正文開始之前需要介紹一個人:SeanSexton.來自明尼蘇達雙城的軟件工程師。最為出色的是他維護了兩個博客:2,000ThingsYouShouldKnowAboutC#和2,000ThingsYouShouldKnowAboutWPF。他以類似微博式的150字簡短語言來每天更新一條WPF和C#重要又容易被遺忘的知識。很希望能夠分享給大家。本系列我不僅會翻譯他的每" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

2000條你應知的WPF小姿勢 基礎篇<63-68 Trigger

系統 2028 0

原文: 2000條你應知的WPF小姿勢 基礎篇<63-68 Triggers和WPF類邏輯結構>

  在正文開始之前需要介紹一個人:Sean Sexton.?來自明尼蘇達雙城的軟件工程師。最為出色的是他維護了兩個博客: 2,000 Things ?You Should Know About C#? ?和? 2,000 Things You Should Know About?WPF ?。他以類似微博式的150字簡短語言來每天更新一條WPF和C#重要又容易被遺忘的知識。很希望能夠分享給大家。

  本系列我不僅會翻譯他的每一個tip,也會加入自己開發之中的看法和見解。本系列我希望自己也能和他一樣堅持下來,每天的進步才能促成偉大。

  在這里鄭重說明.該系列是基于Sean Sexton先生的英文博客, Sean Sexton擁有全部版權和撤銷權利。

  前文可以翻閱本博客wpf標簽的文章。

[ 小九的學堂,致力于以平凡的語言描述不平凡的技術。如要轉載,請注明來源: 小九的學堂 cnblogs.com/xfuture ]


 ?。?3 Trigger觸發后的屬性改變可以自動重置

  當Trigger改變了一個屬性的值后,如果Trigger中的判斷不再為true的時候,該屬性會自動重置為初始值。

  例子:對一個button mouse over的時候你設置其有dropshadoweffect,而當你離開該button的時候就會回復其原始狀態。

< Window.Resources >
???? < Style x:Key = "hoverStyle" TargetType = "Button" >
???????? < Style.Triggers >
???????????? < Trigger Property = "IsMouseOver" Value = "true" >
???????????????? < Setter Property = "Button.Effect" >
???????????????????? < Setter.Value >
???????????????????????? < DropShadowEffect />
???????????????????? </ Setter.Value >
???????????????? </ Setter >
???????????? </ Trigger >
???????? </ Style.Triggers >
???? </ Style >
</ Window.Resources >
< StackPanel Orientation = "Horizontal" HorizontalAlignment = "Center" >
???? < Button Content = "Run" Height = "23" Width = "75" Style = "{StaticResource hoverStyle}" />
???? < Button Content = "Skip" Height = "23" Width = "75" Style = "{StaticResource hoverStyle}" />
???? < Button Content = "Jump" Height = "23" Width = "75" Style = "{StaticResource hoverStyle}" />
</ StackPanel >

  #64 Wpf所支持的三種Triggers

  Wpf支持三種不同種類的Triggers:

  <1>. Property trigger,

  1. 當依賴屬性改變時觸發,

  2. 使用屬性名字來定制,

  3. 包含Setter元素,來賦予一個或者多個依賴屬性觸發器,當Trigger處于active狀態或者處于inactive狀態時,可以觸發一個或者多個TriggerAction.

  ?

  <2>. Data trigger,

  1. 當CLR屬性改變時觸發,

  2. 使用Binding 關鍵字來定制,

  3. 包含Setter元素,來賦予一個或者多個依賴屬性觸發器,當Trigger處于active狀態或者處于inactive狀態時,可以觸發一個或者多個TriggerAction.

?

  <3>. Event trigger,

  1. 當一個Routed event觸發時觸發,

  2. 可以觸發派生自TriggerAction的類,比如BeginStoryboard, SoundPlayerAction.

  3. 多用在WPF 動畫上

?

 #65 依賴屬性繼承邏輯樹上層元素賦予的值

  依賴屬性的值可以來自很多不同的數據源,但是一般來說都會從邏輯樹上層元素繼承值。

  這意味著當你在Xaml中高層元素賦予一個依賴屬性值,其子元素相同名字的依賴屬性會繼承其值。

  下面是一個在window元素中定義fontstyle而子元素繼承到的例子:

      
        <
      
      
        Window 
      
      
        x:Class
      
      
        ="WpfApplication1.MainWindow"
      
      
        

        xmlns
      
      
        ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      
      
        

        xmlns:x
      
      
        ="http://schemas.microsoft.com/winfx/2006/xaml"
      
      
        

        xmlns:m
      
      
        ="clr-namespace:PersonLib;assembly=PersonLib"
      
      
        

        Title
      
      
        ="MainWindow"
      
      
         Height
      
      
        ="350"
      
      
         Width
      
      
        ="525"
      
      
         FontStyle
      
      
        ="Italic"
      
      
        >
      
      
        <
      
      
        StackPanel 
      
      
        Orientation
      
      
        ="Vertical"
      
      
        >
      
      
        <
      
      
        Button 
      
      
        Content
      
      
        ="Run"
      
      
         Height
      
      
        ="23"
      
      
         Width
      
      
        ="75"
      
      
        />
      
      
        <
      
      
        Button 
      
      
        Content
      
      
        ="Skip"
      
      
         Height
      
      
        ="23"
      
      
         Width
      
      
        ="75"
      
      
        />
      
      
        <
      
      
        StackPanel 
      
      
        Orientation
      
      
        ="Horizontal"
      
      
        >
      
      
        <
      
      
        Label 
      
      
        Content
      
      
        ="Inside 2nd StackPanel"
      
      
        />
      
      
        <
      
      
        Label 
      
      
        Content
      
      
        ="I do my own FontStyle"
      
      
         FontStyle
      
      
        ="Normal"
      
      
        />
      
      
        </
      
      
        StackPanel
      
      
        >
      
      
        </
      
      
        StackPanel
      
      
        >
      
      
        </
      
      
        Window
      
      
        >
      
    

  子元素中的Label會繼承window定義的Italic的字體。

?

  #66 依賴屬性冒泡尋找其繼承值

  一個UI元素會向上尋找其需要繼承的值,除非尋找到獨特定義的屬性則會一直向上冒泡尋找到根元素。

  下面有個button中尋找fontstyle屬性值的例子,穿過了stackpanel和grid一直到window找到其定義值。

      
        <
      
      
        Window 
      
      
        x:Class
      
      
        ="WpfApplication1.MainWindow"
      
      
        

        xmlns
      
      
        ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      
      
        

        xmlns:x
      
      
        ="http://schemas.microsoft.com/winfx/2006/xaml"
      
      
        

        xmlns:m
      
      
        ="clr-namespace:PersonLib;assembly=PersonLib"
      
      
        

        Title
      
      
        ="MainWindow"
      
      
         Height
      
      
        ="350"
      
      
         Width
      
      
        ="525"
      
      
         FontStyle
      
      
        ="Italic"
      
      
        >
      
      
        <
      
      
        Grid
      
      
        >
      
      
        <
      
      
        StackPanel 
      
      
        Orientation
      
      
        ="Vertical"
      
      
        >
      
      
        <
      
      
        Button 
      
      
        Content
      
      
        ="Run"
      
      
         Height
      
      
        ="23"
      
      
         Width
      
      
        ="75"
      
      
        />
      
      
        <
      
      
        Button 
      
      
        Content
      
      
        ="Skip"
      
      
         Height
      
      
        ="23"
      
      
         Width
      
      
        ="75"
      
      
        />
      
      
        </
      
      
        StackPanel
      
      
        >
      
      
        </
      
      
        Grid
      
      
        >
      
      
        </
      
      
        Window
      
      
        >
      
    

?

  #67 UI元素控件的類繼承圖

2000條你應知的WPF小姿勢 基礎篇<63-68 Triggers和WPF類邏輯結構>

?

  #68 WPF UI元素的四個基礎類

  存在四個基礎類,大多數UI元素繼承自它們,或者你自己定制一些類的時候也是繼承自它們。

  1. ContentElement, 2. FrameworkContentElement, 3. UIElement, 4. FrameworkElement.

2000條你應知的WPF小姿勢 基礎篇<63-68 Triggers和WPF類邏輯結構>

?

  下一期會有更多關于WPF內置結構的Tips,希望能多多關注~

2000條你應知的WPF小姿勢 基礎篇<63-68 Triggers和WPF類邏輯結構>


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产无遮挡裸体免费视频 | 99re国产| 久久精品视在线看1 | 久草在线在线精品观看 | xxx视频| 偷拍免费视频 | a级欧美片免费观看 | 欧美精品午夜久久久伊人 | 蜜臀AV性色A片在线观看 | 日韩欧美中文字幕在线观看 | 一区二区三区网站在线免费线观看 | 国产传媒视频 | 97久久精品一区二区三区观看 | 激情五月色婷婷在线观看 | 亚洲一区二区三区久久 | 米奇精品一区二区三区在线观看 | 在线视频不卡国产在线视频不卡 | 超级碰碰碰视频视频在线视频 | 天天影视免费在线观看入口 | 日本大片在线免费观看 | 久久午夜电影网 | 总攻调教各种受肉 | 超碰国产在线 | 天天碰人人| 青娱在线| 欧美精品网站 | 日韩一级a毛片欧美一级 | 国产精品v在线播放观看 | 国产精品v欧美精品v日韩精品 | 四虎黄色网址 | 亚洲精品久久久 | 国产精品久久久免费视频 | 窝窝午夜精品一区二区 | 两性仑乱视频 | 亚洲国产精品热久久2022 | 婷婷射丁香 | 狠狠一区| 中国一级特黄毛片大片 | 成人两性高清图片视频 | 久久久亚洲一区 | 亚洲成人免费视频在线观看 |