绑定刷新动画上的所有绑定控件
本文关键字:绑定 控件 刷新 动画 | 更新日期: 2023-09-27 17:58:22
使用等颜色绑定时
Background="{Binding Design.LeftBarColor}"
并执行类似的动画
<DoubleAnimation From="1" To="0.5" Storyboard.TargetName="appName"
Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Opacity)"
Duration="0:0:0.25"/>
绑定到"Design.LeftBarColor"的所有控件都将刷新。但我只想刷新标签的(appName)背景颜色。我只是尝试更改绑定模式,但没有成功。我做错了什么?
您可以为每个标签创建一个新的背景笔刷,并将新笔刷的颜色绑定到Design.LeftBarColor.Color
,而不是直接使用Design.LeftBarColor
笔刷作为标签的背景。
<Label Name="appName" ...>
<Label.Background>
<SolidColorBrush Color="{Binding Design.LeftBarColor.Color}"/>
</Label.Background>
...
</Label>
不确定我对你试图做的事情是否正确。我想说,如果你想淡出动画上的控件,不要针对笔刷的不透明度。在标签顶部放置一个边框控件,然后修改边框的不透明度。
此处的示例代码:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="Red"/>
</Window.Resources>
<Grid>
<Border Name="Container">
<Label Background="{StaticResource MyBrush}">
<Label.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="Container"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Label.Triggers>
Lorem ipsum
</Label>
</Border>
</Grid>
</Window>