WP7备注(38)(VisualStateManager)
2011-05-09 13:47
405 查看
TemplateVisualStateAttribute:
具体使用:
状态跳转:
VisualStateManager.GoToElementState(UIElemnt, "Normal", true);
[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);
相关文章推荐
- Silverlight的VisualStateManager
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- 动画类DoubleAnimationUsingKeyFrames、ObjectAnimationUsingKeyFrames、TransformGroup,VisualStateManager的实际应用
- Silverlight的VisualStateManager
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
- 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- VisualStateManager控件状态利器 详解
- 新增WPF4中的 VisualStateManager于原先的.NET3.5中的仅在SL中的VisualStateManager
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- VisualStateManager
- silverlight基础6-VisualStateManager
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
- 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)