zoukankan      html  css  js  c++  java
  • WP7备注(38)(VisualStateManager)

    TemplateVisualStateAttribute:

    [TemplateVisualStateAttribute(Name = "Disabled", GroupName = "CommonStates")]
    [TemplateVisualStateAttribute(Name = "Normal", GroupName = "CommonStates")]
    [TemplateVisualStateAttribute(Name = "MouseOver", GroupName = "CommonStates")]
    [TemplateVisualStateAttribute(Name = "Pressed", GroupName = "CommonStates")]
    [TemplateVisualStateAttribute(Name = "Unfocused", GroupName = "FocusStates")]
    [TemplateVisualStateAttribute(Name = "Focused", GroupName = "FocusStates")]
    public class Button : ButtonBase

    具体使用:

    <phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="buttonTemplate" TargetType="Button">
    <Grid>
    <VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="CommonStates">
    <VisualState x:Name="Normal" />
    <VisualState x:Name="MouseOver" />
    <VisualState x:Name="Pressed">
    <Storyboard>
    <ObjectAnimationUsingKeyFrames
    Storyboard.TargetName="border"
    Storyboard.TargetProperty="Background">
    <DiscreteObjectKeyFrame KeyTime="0:0:0"
    Value="{StaticResource PhoneForegroundBrush}" />
    </ObjectAnimationUsingKeyFrames>
    <ObjectAnimationUsingKeyFrames
    Storyboard.TargetName="contentControl"
    Storyboard.TargetProperty="Foreground">
    <DiscreteObjectKeyFrame KeyTime="0:0:0"
    Value="{StaticResource PhoneBackgroundBrush}" />
    </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    </VisualState>
    <VisualState x:Name="Disabled">
    <Storyboard>
    <DoubleAnimation Storyboard.TargetName="disableRect"
    Storyboard.TargetProperty="Opacity"
    To="0.6" Duration="0:0:0" />
    </Storyboard>
    </VisualState>
    </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Border Name="border"
    BorderBrush="{TemplateBinding BorderBrush}"
    BorderThickness="{TemplateBinding BorderThickness}"
    Background="{TemplateBinding Background}"
    CornerRadius="12">
    <ContentControl Name="contentControl"
    Content="{TemplateBinding Content}"
    ContentTemplate="{TemplateBinding ContentTemplate}"
    Margin="{TemplateBinding Padding}"
    HorizontalAlignment="{TemplateBinding
    HorizontalContentAlignment}"
    VerticalAlignment="{TemplateBinding
    VerticalContentAlignment}" />
    </Border>
    <Rectangle Name="disableRect"
    Fill="{StaticResource PhoneBackgroundBrush}"
    Opacity="0" />
    </Grid>
    </ControlTemplate>
    <Style x:Key="buttonStyle" TargetType="Button">
    <Setter Property="BorderBrush" Value="{StaticResource PhoneAccentBrush}" />
    <Setter Property="BorderThickness" Value="6" />
    <Setter Property="Background" Value="{StaticResource PhoneChromeBrush}" />
    <Setter Property="Template" Value="{StaticResource buttonTemplate}" />
    </Style>
    </phone:PhoneApplicationPage.Resources>

    状态跳转:

    VisualStateManager.GoToElementState(UIElemnt, "Normal", true);

  • 相关阅读:
    python并发编程
    中缀表达式转换为后缀表达式(python实现)
    使用docker部署filebeat和logstash
    数据结构和算法的一些思考
    RESTFUL如何指导WEB API设计?
    哈希表的原理及实现代码
    python实现有序字典
    django源码分析 请求流程
    python 通过元类控制类的创建
    前后端分离人力资源管理系统
  • 原文地址:https://www.cnblogs.com/otomii/p/2041086.html
Copyright © 2011-2022 走看看