我刚刚意识到Xaml有多么神奇(通常我只是在visual studio中设计UI)。我正在使用Expression Blend完成我的所有工作,并且不确定我是否可以做某事。
我正在观看youtube上的教程,关于创建动画,并希望做一些不同的事情。它与增加和减少椭圆的不透明度有关。有问题的代码:
<Canvas.Resources>
<Storyboard x:Key="brighter">
<DoubleAnimation
Storyboard.TargetName="ellipse"
Storyboard.TargetProperty="Opacity"
From="0.1" To="1.0" Duration="0:0:0.25"
/>
</Storyboard>
<Storyboard x:Key="dimmer">
<DoubleAnimation
Storyboard.TargetName="ellipse"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.1" Duration="0:0:0.25"
/>
</Storyboard>
</Canvas.Resources>
我想要的是,而不是'From =“0.1”'和'To =“0.1”',我希望它从或开始,或者转到椭圆的当前不透明度值
所以喜欢:
From=ellipse.Opacity To='1.0'
但我不知道你是否可以在Xaml中做到这一点(我的猜测是你不能)。你能在xaml中引用一个xaml控件吗?
由于
修改 的
对于其他寻找解决方案的人来说,使用Bindings ....所以代替:
From="0.1"
使用
From="{Binding ellipse.Opacity}" <!--ellipse is the name of the control you are referencing-->
答案 0 :(得分:0)
如果我没记错的话,你应该可以删除“from”属性。这样,动画总是从当前值运行到指定的值。 类似的东西:
<Canvas.Resources>
<Storyboard x:Key="brighter">
<DoubleAnimation
Storyboard.TargetName="ellipse"
Storyboard.TargetProperty="Opacity"
To="1.0" Duration="0:0:0.25" />
</Storyboard>
<Storyboard x:Key="dimmer">
<DoubleAnimation
Storyboard.TargetName="ellipse"
Storyboard.TargetProperty="Opacity"
To="0.1" Duration="0:0:0.25" />
</Storyboard>
</Canvas.Resources>