WPF控件状态的过渡效果
来源:互联网 发布:爱情动作片软件 编辑:程序博客网 时间:2024/06/15 08:12
先上图,这只是一个很普通的效果,用来帮助理解VisualStateManager。
2)、至于为什么把他们分成三组,举例说明:按钮可以同时处于Normal、Focused的状态,但不能处于Normal、MouseOver的状态。就是说,在CommandStates里面,按钮只能处于组内的一种状态,同时在FocusStates里面,同样只能处于组内的一种状态,但它们两者能并存。
3)、在对控件进行模板定义的时候,状态与状态之间切换时的过渡效果,可以通过VisualStateManager对这些状态进行管理,注意,只是对过渡效果进行管理,过渡效果就是一些动画效果了。还是以Button为例
<Button Content="123" Width="100" Height="100">
<Button.Template>
<ControlTemplate>
<Border x:Name="Bg">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"></VisualState>
<VisualState x:Name="Pressed"></VisualState>
<VisualState x:Name="MouseOver"></VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{TemplateBinding Content}" />
</Grid>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
这里主要有三个对象,分别是VisualStateManager、VisualStateGroup 、VisualState 。
①VisualStateManager顾名思义,它是State管理器
②VisualStateGroup对应状态分组(CommandStates,FocusStates,ValidationStates)
③VisualState对应组内成员
4)、定义三组颜色
<!--普通状态-按钮边框色、底色-->
<Color x:Key="ButtonNormalBorderBrush">#99ce01</Color>
<Color x:Key="ButtonNormalBackgroundBrush">#d7967a</Color>
<!--鼠标停留-按钮边框色、底色-->
<Color x:Key="ButtonMouseOverBorderBrush">#d9bebf</Color>
<Color x:Key="ButtonMouseOverBackgroundBrush">#9ed29a</Color>
<!--鼠标点击-按钮边框色、底色-->
<Color x:Key="ButtonPressedBorderBrush">#d7967a</Color>
<Color x:Key="ButtonPressedBackgroundBrush">#f2d1d3</Color>
5)、鼠标停留的过渡效果
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Bg">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ButtonMouseOverBorderBrush}" />
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Bg">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ButtonMouseOverBackgroundBrush}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
6)现在例子里面,用触发器也能完成类似的效果。不过只有事件触发器才能触发动画效果。因此..VisualStateManager比较方便一些吧。
0 0
- WPF控件状态的过渡效果
- WPF 过渡效果
- wpf 控件的抖动效果
- 超炫酷的WPF实现Loading控件效果
- CSS3的过渡效果
- Vue的过渡效果
- Vue的过渡效果
- CSS3的过渡效果
- css3的transition 过渡效果
- CSS transition的过渡效果
- activity跳转的过渡效果
- WPF 倒计时设置控件状态
- 积少成多Flash(10) - Flex 3.0 状态转换(State), 状态转换的过渡效果(State Transition), 自定义鼠标指针
- WPF 关于控件背景色的设置和穿透效果
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- 简单的转化器
- Command的定义和应用
- ScrollBar模板定义
- DB2笔记 说道说道
- 101个硬币中有一个假币,有一个无砝码的天平,称两次,判断假币比真币重还是轻。
- WPF控件状态的过渡效果
- java-----逻辑运算符
- s3c2440的Nand flash裸机程序
- 导航控制器UINavigationController
- linux下vi编译器的使用
- Android:Activity,线程,和内存泄漏
- android中popupwindow布局的一些小问题
- 链表(待续)
- poj 1089 Intervals