• 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);

  • 相关阅读:
    第十一节 1虚拟路径 简单
    第十一节 4Server对象 简单
    第十节 19验证码案例 简单
    第十节 19爆力注册 简单
    第十节 23行删除例子讲解请求处理响应 简单
    第十节 18暴力破解及机器人注册原理 简单
    第十一节 2Request对象 简单
    礼物
    笔记本电脑与漂亮老婆
    一场傻B的晚会
  • 原文地址:https://www.cnblogs.com/otomii/p/2041086.html
Copyright © 2020-2023  润新知