【发布时间】:2013-12-11 23:13:29
【问题描述】:
我有一个 wPF 应用程序。我有一列在加载时将其宽度设置为零。它绑定到一个属性,当该值更改为某个值时,宽度更改为 2*。这一切都很好。
我想要添加一个动画,使列滑到网格上。它是最右边的列,因此它会从屏幕的右侧滑到左侧。阅读它听起来好像仅在 XAML 中不容易做到这一点?
编辑
这是我到目前为止所尝试的。问题是“System.Windows.Media.Animation.DoubleAnimation”动画对象不能用于动画属性“宽度”,因为它的类型不兼容 System.Windows.GridLength”。价值转换器在哪里发挥作用?
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="*"/>
<ColumnDefinition>
<ColumnDefinition.Style>
<Style TargetType="{x:Type ColumnDefinition}">
<Setter Property="Width" Value="10"/>
<Style.Triggers>
<DataTrigger Binding="{Binding OrderSelected.Name}" Value="Mark">
<Setter Property="Width" Value="2*"/>
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Width"
Duration="0:0:3"
AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
</Grid.ColumnDefinitions>
【问题讨论】:
-
伙计...你必须先尝试一下...你不能只是来到这个网站说这就是我想要你们为我做,因为我做不到。来自 StackOverflow 'What topics can I ask about here?' help page:3. 要求代码的问题必须证明对正在解决的问题有最低限度的理解。包括尝试过的解决方案、它们为什么不起作用以及预期的结果。
-
我明白你的意思。我一直在互联网上阅读以尝试找到解决方案。但是,似乎不可能阅读其他人的帖子。我最初的几次尝试非常垃圾,并且认为它不会增加任何价值。上面编辑的代码是我目前所在的位置。