<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      yinyuessh

      導航

      Behavior介紹

      WPF Behavior

      前提條件

      • 下載Wpf Behavior庫 - Microsoft.Xaml.Behaviors.Wpf
        tip: b 是我對應Behavior的代號
        xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
        

      介紹

      <b:Interaction.Triggers>
          <b:EventTrigger EventName="Loaded">
              <b:CallMethodAction MethodName="Method" TargetObject="{Binding}" />
          </b:EventTrigger>
      </b:Interaction.Triggers>
      

      這是一個常見的用法,Iteraction類中定義了兩個依賴屬性

      • Triggers
      • Behaviors

      源碼

      private static readonly DependencyProperty TriggersProperty = DependencyProperty.RegisterAttached("ShadowTriggers",typeof(TriggerCollection),typeof(Interaction),new FrameworkPropertyMetadata(new PropertyChangedCallback(OnTriggersChanged)));
      
      
      private static readonly DependencyProperty BehaviorsProperty = DependencyProperty.RegisterAttached("ShadowBehaviors", typeof(BehaviorCollection),typeof(Interaction),new FrameworkPropertyMetadata(new PropertyChangedCallback(OnBehaviorsChanged)));
      

      Trigger

      Trigger的類型為TriggerCollection,可以為其添加多個TriggerBase,Behavior包為我們提供了多種Trigger,一下介紹一些常用的Trigger

      EventTrigger

      事件觸發,EventName為事件名稱,SourceObject為觸發事件的對象,默認為附加的依賴屬性

      <b:EventTrigger EventName="Click" SourceObject="{Binding ElementName=button}"/>
      

      DataTrigger

      數據觸發,Binding為綁定數據,Value為綁定數據中的值,當Binding的值等于Value時觸發

      <b:DataTrigger  Binding="{Binding ElementName=checkBox, Path=IsChecked}" Value="true" />
      

      PropertyChangedTrigger

      屬性改變觸發,Binding為綁定數據,當Binding的值改變時觸發

      <b:PropertyChangedTrigger Binding="{Binding ElementName=checkBox, Path=IsChecked}"/>
      

      Action

      CallMethodAction

      調用方法,MethodName為方法名稱,TargetObject為方法所屬的對象,默認為附加的依賴屬性

      <b:CallMethodAction MethodName="Method" TargetObject="{Binding Object}" />
      

      InvokeCommandAction

      <b:InvokeCommandAction Command="{Binding TestActiveCommand}" />
      

      ControlStoryboardAction

      ControlStoryboardAction表示將在執行時更改指定Storyboard狀態的操作。使用此行為可以使用ControlStoryboard屬性觸發和控制指定的Storyboard


      ControlStoryboardOption 枚舉

      方法名稱 描述
      Start 開始播放動畫
      Stop 停止播放動畫
      Pause 暫停播放動畫
      Resume 恢復播放動畫
      SkipToFill 跳過動畫
      TogglePlayPause 切換播放和暫停

      <UserControl.Resources>
        <Storyboard x:Key="StoryboardSample" AutoReverse="True" RepeatBehavior="Forever">
          <DoubleAnimation Duration="0:0:2.2" To="0.35"
            Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
            Storyboard.TargetName="StoryboardRectangle" d:IsOptimized="True"/>
          <DoubleAnimation Duration="0:0:2.2" To="0.35"
            Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
            Storyboard.TargetName="StoryboardRectangle" d:IsOptimized="True"/>
        </Storyboard>
       </UserControl.Resources>
      
      <Rectangle x:Name="StoryboardRectangle" />
      <Button x:Name="button">
        <Behaviors:Interaction.Triggers>
          <Behaviors:EventTrigger EventName="Click">
            <Behaviors:ControlStoryboardAction Storyboard="{StaticResource StoryboardSample}" ControlStoryboardOption="TogglePlayPause"/>
          </Behaviors:EventTrigger>
        </Behaviors:Interaction.Triggers>
      </Button>
      

      GoToStateAction

      GoToStateAction表示在觸發時會將FrameworkElement(即Button)轉換為指定的VisualState的操作。此行為會將TargetObjectTargetName指定的元素更改為可視狀態StateName。除非UseTrantions設置為false,否則當前狀態和新狀態之間的任何轉換都將播放。

      <Button x:Name="sampleStateButton">
        <Button.Resources>
          <Style TargetType="Button" >
            <Setter Property="Template">
              <Setter.Value>
                <ControlTemplate TargetType="Button">
                  <Grid x:Name="BaseGrid">
                    <VisualStateManager.VisualStateGroups>
                      <VisualStateGroup>
                        <VisualState x:Name="Normal">
                          <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="BaseGrid" Storyboard.TargetProperty="Opacity" To="1.0" From="1.0"/>
                          </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Disabled">
                          <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="BaseGrid" Storyboard.TargetProperty="Opacity" To="0.25" From="1.0"/>
                          </Storyboard>
                        </VisualState>
                      </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                  </Grid>
                </ControlTemplate>
              </Setter.Value>
            </Setter>
          </Style>
        </Button.Resources>
      </Button>
      
      <CheckBox x:Name="checkBox">
        <Behaviors:Interaction.Triggers>
          <Behaviors:DataTrigger Binding="{Binding IsChecked, ElementName=checkBox}" Value="False">
            <Behaviors:GoToStateAction StateName="Normal" TargetObject="{Binding ElementName=sampleStateButton}"/>
          </Behaviors:DataTrigger>
          <Behaviors:DataTrigger Binding="{Binding IsChecked, ElementName=checkBox}" Value="True">
            <Behaviors:GoToStateAction StateName="Disabled" TargetObject="{Binding ElementName=sampleStateButton}"/>
          </Behaviors:DataTrigger>
        </Behaviors:Interaction.Triggers>
      </CheckBox>
      

      Behavior

      Behavior是一個行為,當事件發生時,會觸發Behavior中的行為

      ConditionBehavior

      條件行為,ConditionalExpression為條件表達式,當條件表達式為真時,觸發Behavior中的行為

      <b:Interaction.Triggers>
          <b:EventTrigger EventName="Click" SourceObject="{Binding ElementName=Button}">
              <b:Interaction.Behaviors>
                  <b:ConditionBehavior>
                      <b:ConditionalExpression>
                          <b:ComparisonCondition LeftOperand="{Binding Path=Items.Count, ElementName=TabControl}" RightOperand="0" />
                      </b:ConditionalExpression>
                  </b:ConditionBehavior>
              </b:Interaction.Behaviors>
              <b:ChangePropertyAction/>
          </b:EventTrigger>
      </b:Interaction.Triggers>
      

      DataStateBehavior

      當行為綁定到的數據等于某個值時,DataStateBeact執行操作。每當更新關聯的綁定時,此行為都會檢查綁定結果是否等于某個值。如果兩個值相等,則轉換為TrueState。否則,它會轉換為FalseState

      <Button x:Name="sampleStateButton">
        <Button.Resources>
          <Style TargetType="Button" >
            <Setter Property="Template">
              <Setter.Value>
                 <ControlTemplate TargetType="Button">
                 <Grid x:Name="BaseGrid" Background="DeepPink">
                   <VisualStateManager.VisualStateGroups>
                     <VisualStateGroup>
                       <VisualState x:Name="Normal">
                         <Storyboard>
                           <ColorAnimation Storyboard.TargetName="BaseGrid" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="DarkBlue" From="DeepPink" />
                         </Storyboard>
                        </VisualState>
                        <VisualState x:Name="Blue">
                          <Storyboard>
                            <ColorAnimation Storyboard.TargetName="BaseGrid" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="DeepPink" From="DarkBlue" Duration="Forever" />
                          </Storyboard>
                        </VisualState>
                      </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Behaviors:Interaction.Behaviors>
                      <Behaviors:DataStateBehavior Binding="{Binding Text, ElementName=MyText}" Value="" TrueState="Normal" FalseState="Blue" />
                    </Behaviors:Interaction.Behaviors>
                  </Grid>
                </ControlTemplate>
              </Setter.Value>
            </Setter>
          </Style>
        </Button.Resources>
      </Button>
      

      posted on 2024-05-09 11:03  音樂隨生活  閱讀(188)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲国产精品一区二区第一页| 性欧美乱熟妇xxxx白浆| 最新偷拍一区二区三区| 日本高清视频色wwwwww色| 亚洲高清国产自产拍av| 欧美白人最猛性xxxxx| 久久国产成人午夜av影院| 亚洲av一本二本三本| 中文字幕亚洲人妻系列| 亚洲AV日韩AV激情亚洲| 国产精品人成视频免费国产| 国产成人精品亚洲高清在线| 元朗区| 国产综合精品一区二区三区| 九九热在线免费视频精品| 天堂亚洲免费视频| 东京热一精品无码av| 色偷偷天堂av狠狠狠在| 人人妻人人澡人人爽不卡视频| 色香欲天天影视综合网| 亚洲精品久久久久久无码色欲四季 | 国产精品十八禁在线观看| 午夜成年男人免费网站| 天天做天天爱夜夜爽毛片| 97色伦97色伦国产| 国产亚洲一区二区三区成人| 亚洲国产成人精品无码区蜜柚| 99国产欧美另类久久久精品| 久久中文字幕无码专区| 高清有码国产一区二区| 又爽又黄又无遮挡的视频| 东京热一区二区三区在线| 亚洲第一综合天堂另类专| 国产精品自在自线视频| 国内精品自产拍在线播放| 亚洲色欲色欱WWW在线| 久久人人爽人人爽人人片| 日韩人妻少妇一区二区三区| 亚洲一区成人在线视频| 中文区中文字幕免费看| 色偷偷成人综合亚洲精品|