zoukankan      html  css  js  c++  java
  • UserControl的trigger

    1. 例子:targetType设置好就能够直接使用 user control中定义的 dependency property

    <UserControl x:Class="myUserControl" x:Name="thisControl">

    <UserControl.Resource/>

    <UserControl.Style>

          <Style TargetType="{x:Type local:myUserControl}">

         <Setter Property="Background" Value="yellow" />

         <Style.Triggers>

              <MultiTrigger>

              <MultiTrigger.Conditions>

                   <Condition Property="IsExpanded" Value="True"/>

                   <Condition Property="IsMouseOver" Value="True"/>

                   </MultiTrigger.Conditions>

                   <SetterProperty="Background" Value="Blue"/>

              </MultiTrigger>

    </Style.Triggers>

    </Style>

    </UserControl.Style>

    2. 对于user control内部的element,要使用user control的property,最好就用binding,如:

    < ToggleButton IsChecked="{Binding ElementName=thisControl,Path=IsExpanded,Mode=TwoWay}" />

    3. Style.Trigger 中的triiger不能使用SourceName,setter 不能用TargetName,这些只能在template中使用,因为template中才有可视树。在template中例子如下:

     <DataTemplate.Triggers >

    <MultiTrigger>

    <MultiTrigger.Conditions>

    <Condition Property="IsMouseOver" Value="True"/>

    <Condition SourceName="MoreTextBlock" Property="Visibility" Value="Visible"/>

    </MultiTrigger.Conditions>

    <Setter TargetName="OneTextBox" Property="MaxLines" Value="200" />

    <Setter TargetName="OneTextBlock" Property="Text" Value=""/>

    </MultiTrigger>

    </DataTemplate.Triggers>

     

  • 相关阅读:
    GitLab CI/CD的官译【原】
    Gearman介绍、原理分析、实践改进
    Golang逃逸分析
    Go 程序是怎样跑起来的
    分布式系统的常见玩法
    开发更高可用、高质量的服务的一些建议
    理解 Kubernetes 的亲和性调度
    服务发现对比:Zookeeper vs etcd vs Consul
    探索etcd,Zookeeper和Consul一致键值数据存储的性能
    CentOS 7 安装无线驱动
  • 原文地址:https://www.cnblogs.com/liangouyang/p/1343082.html
Copyright © 2011-2022 走看看