【转】【WPF】WPF样式(Style)—触发器
生活随笔
收集整理的這篇文章主要介紹了
【转】【WPF】WPF样式(Style)—触发器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樣式(Styles)由三部分構成:設置器(Setter)、觸發器(Triggers)、資源(Resources)。
(1)觸發器,讓樣式的使用更加準確、靈活和高效。
(2)觸發器(Triggers)主要分為三類,屬性觸發器(檢查從屬屬性即WPF元素自身屬性)、數據觸發器(檢查任意可綁定的屬性)、事件觸發器(用于監聽事件)。
屬性觸發器
檢查從屬屬性的值,即WPF元素自身屬性。比如按鈕的內容、字體的大小、顏色等等。
<Window.Resources><Style TargetType="Button"><Style.Triggers><Trigger Property="Content" Value="按鈕"><Setter Property="ToolTip" Value="這是一個按鈕"> </Setter></Trigger></Style.Triggers></Style></Window.Resources>多屬性觸發器
<Window.Resources><Style TargetType="Button"><Style.Triggers><Trigger Property="Content" Value="按鈕"><Setter Property="ToolTip" Value="這是一個按鈕"></Setter></Trigger><Trigger Property="Content" Value="Button"><Setter Property="ToolTip" Value="This is a button"></Setter></Trigger></Style.Triggers></Style></Window.Resources>?
多條件屬性觸發器?
<Window.Resources><Style TargetType="Button"><Style.Triggers><MultiTrigger><!--條件列表--><MultiTrigger.Conditions><Condition Property="Content" Value="按鈕"></Condition><Condition Property="Visibility" Value="Visible"></Condition></MultiTrigger.Conditions><!--樣式--><Setter Property="ToolTip" Value="這是一個可見按鈕"></Setter></MultiTrigger></Style.Triggers></Style></Window.Resources> 數據觸發器可以檢查任意可綁定的屬性,比如CLR對象屬性、XPath聲明等。相對于屬性觸發器,數據觸發器通常用來檢查不可見的對象屬性。
<Window.Resources><Style TargetType="Button"><Style.Triggers><DataTrigger Binding="{Binding Path=Name}" Value="李寶亨"><Setter Property="Foreground" Value="Tomato"/></DataTrigger></Style.Triggers></Style></Window.Resources><Grid><Button Content="{Binding Path=Name}" Height="23" Margin="103,94,120,84" Name="button1" Width="75"/></Grid> 定義的Person類 public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DataContext = new Person("李寶亨","21"); }class Person{string _Name;public string Name{get { return _Name; }set { _Name = value; }}string _Age;public string Age{get { return _Age; }set { _Age = value; }}public Person(string name,string age){_Name = name;_Age = age;}}} 多條件數據觸發器 <Window.Resources><Style TargetType="Button"><Style.Triggers><MultiDataTrigger><!--條件列表--><MultiDataTrigger.Conditions><Condition Binding="{Binding Path=Name}" Value="李寶亨"/><Condition Binding="{Binding Path=Age}" Value="21"/></MultiDataTrigger.Conditions><Setter Property="Foreground" Value="Tomato"/></MultiDataTrigger></Style.Triggers></Style></Window.Resources><Grid><Button Content="{Binding Path=Name}" Height="23" Margin="103,94,120,84" Name="button1" Width="75"/></Grid> 事件觸發器事件觸發器用來監聽事件。當一個事件發生時,事件觸發器就會引發相關的動畫事件來進行響應。
<Window.Resources><Style TargetType="Button"><Style.Triggers><!--事件觸發器--><EventTrigger RoutedEvent="MouseEnter"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0.1" Duration="0:0:3"></DoubleAnimation></Storyboard></BeginStoryboard></EventTrigger></Style.Triggers></Style></Window.Resources>原文地址:http://tianzengyan.blog.163.com/blog/static/1675840912012920105524490/
轉載于:https://www.cnblogs.com/mqxs/p/5489237.html
總結
以上是生活随笔為你收集整理的【转】【WPF】WPF样式(Style)—触发器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读《失控》有感
- 下一篇: jQuery 判断是否为数字的方法