zoukankan      html  css  js  c++  java
  • WPF三种基本触发器与【与或】逻辑触发器

    wpf中的触发器是应用于程序界面模板、样式、皮肤、主题的基础。以下作为学习的记录。

    1,三种基本触发器,属性触发器、数据触发器、事件触发器

    属性触发器

     1         <!--属性触发器-->
     2         <TextBox TextWrapping="Wrap" Margin="5">
     3             <TextBox.Style>
     4                 <Style TargetType="TextBox">
     5                     <Style.Triggers>
     6                         <Trigger Property="Text" Value="text">
     7                             <Setter Property="Background" Value="Aqua"></Setter>
     8                         </Trigger>
     9                     </Style.Triggers>
    10                 </Style>
    11             </TextBox.Style>
    12         </TextBox>
    View Code

    数据触发器

     1         <!--数据触发器-->
     2         <TextBox TextWrapping="Wrap" Margin="5">
     3             <TextBox.Style>
     4                 <Style TargetType="TextBox">
     5                     <Style.Triggers>
     6                         <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="text">
     7                             <Setter Property="Background" Value="Red"></Setter>
     8                         </DataTrigger>
     9                     </Style.Triggers>
    10                 </Style>
    11             </TextBox.Style>
    12         </TextBox>
    View Code

    事件触发器

     1  <!--事件触发器-->
     2     <Window.Resources>
     3         <PathGeometry x:Key="ellipse">
     4             <PathFigure IsClosed="True" StartPoint="0,50">
     5                 <ArcSegment Size="50,000" Point="100,50" SweepDirection="Clockwise"></ArcSegment>
     6             </PathFigure>
     7         </PathGeometry>
     8     </Window.Resources>
     9     <Canvas>
    10         <Rectangle Name="rect" Canvas.Top="0" Canvas.Left="30" Height="30" Fill="Red"></Rectangle>
    11     </Canvas>
    12     <Window.Triggers>
    13         <EventTrigger RoutedEvent="Window.Loaded">
    14             <BeginStoryboard>
    15                 <Storyboard BeginTime="0:0:0" RepeatBehavior="Forever">
    16                     <DoubleAnimationUsingPath Storyboard.TargetName="rect" 
    17                                               Storyboard.TargetProperty="Width" 
    18                                               PathGeometry="{StaticResource ResourceKey=ellipse}"
    19                                               Source="X" Duration="0:0:10"></DoubleAnimationUsingPath>
    20                 </Storyboard>
    21             </BeginStoryboard>
    22         </EventTrigger>
    23     </Window.Triggers>
    View Code


    2,两种逻辑触发器,与逻辑触发器、或逻辑触发器

    与逻辑触发器

     1 <!--或逻辑触发器-->
     2     <Button Content="press me" Width="150" Height="60">
     3         <Button.Style>
     4             <Style TargetType="{x:Type Button}">
     5                 <Style.Triggers>
     6                     <Trigger Property="Button.IsMouseOver" Value="True">
     7                         <Setter Property="Button.Foreground" Value="Blue"></Setter>
     8                     </Trigger>
     9                     <Trigger Property="Button.IsPressed" Value="True">
    10                         <Setter Property="Button.Foreground" Value="Red"></Setter>
    11                     </Trigger>
    12                 </Style.Triggers>
    13             </Style>
    14         </Button.Style>
    15     </Button>
    View Code

    或逻辑触发器

     1 <!--与逻辑触发器-->
     2     <TextBox TextWrapping="Wrap" Margin="5">
     3         <TextBox.Style>
     4             <Style TargetType="TextBox">
     5                 <Style.Triggers>
     6                     <MultiTrigger>
     7                         <MultiTrigger.Conditions>
     8                             <Condition Property="Text" Value="text"></Condition>
     9                             <Condition Property="IsMouseOver" Value="True"></Condition>
    10                         </MultiTrigger.Conditions>
    11                         <Setter Property="Foreground" Value="Aqua"></Setter>
    12                     </MultiTrigger>
    13                 </Style.Triggers>
    14             </Style>
    15         </TextBox.Style>
    16     </TextBox>
    View Code
  • 相关阅读:
    超棒的前端开发界面套件 InK
    现代浏览器的web音频javascript类库 Howler.js
    富有创意的菱形响应式页面设计
    创意味儿十足的web布局及交互设计
    一个超酷的横向多列响应式布局效果
    帮助你生成响应式布局的CSS模板 xyCSS
    免费素材大荟萃:免费图标和UI设计
    使用浏览器生成超棒的midi音乐 midi.js
    JavaScript 和 .NET 中的 JavaScript Object Notation (JSON) 简介
    推荐一批基于web的开源html文本编辑器(40+)
  • 原文地址:https://www.cnblogs.com/codeinet/p/4664921.html
Copyright © 2011-2022 走看看