我正在使用WPF擴展器來顯示一些模擬過程變量。WPF Expander Border Animation影響所有包含的控件?
當這些變量之一進入'警告'或'警報'狀態時,我想讓擴展器的邊界發光(或閃光)。
爲了達到這個目的,我在我的視圖模型('AnalogWarningActive'和'AnalogAlarmActive')中使用了一些綁定到一些布爾屬性的數據觸發器。數據觸發器啓動動畫擴展器邊框不透明度的故事板。
數據觸發器正如我所料:正確的邊框顏色出現,不透明度動畫開始。不過,也有2個問題:
整個擴展的不透明度(和所有包含的控件)正在發生變化,而不僅僅是它的邊界的不透明度。
當'AnalogWarningActive'和'AnalogAlarmActive'標籤返回False時,邊框消失,但透明動畫無限期地繼續(即整個擴展器繼續淡入和淡出)。
這裏是我使用的XAML:
<SolidColorBrush x:Key="AnalogAlarmBrush" Color="#FFFF8080" />
<SolidColorBrush x:Key="AnalogWarningBrush" Color="#FFFFFF80" />
<Storyboard x:Key="AlarmBorderFlasher" AutoReverse="True" RepeatBehavior="Forever">
<DoubleAnimation
Storyboard.TargetProperty="(Border.Opacity)"
From="1.0" To="0.4"
Duration="0:0:0.8" />
</Storyboard>
<Expander Header="Test Data" IsExpanded="True">
<Expander.Style>
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AnalogWarningActive}" Value="True" >
<DataTrigger.EnterActions>
<BeginStoryboard Name="WarningBorderStoryboard" Storyboard="{StaticResource AlarmBorderFlasher}" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="WarningBorderStoryboard" />
</DataTrigger.ExitActions>
<DataTrigger.Setters>
<Setter Property="BorderBrush" Value="{StaticResource AnalogWarningBrush}" />
<Setter Property="BorderThickness" Value="4" />
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding Path=AnalogAlarmActive}" Value="True" >
<DataTrigger.EnterActions>
<BeginStoryboard Name="AlarmBorderStoryboard" Storyboard="{StaticResource AlarmBorderFlasher}" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="AlarmBorderStoryboard" />
</DataTrigger.ExitActions>
<DataTrigger.Setters>
<Setter Property="BorderBrush" Value="{StaticResource AnalogAlarmBrush}" />
<Setter Property="BorderThickness" Value="4" />
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<!-- snipped the contents of the expander (a tabcontrol and a few text boxes, labels, etc)-->
</Expander>
這完美的作品。對#1問題實施建議似乎也修復了#2。謝謝! – user158485 2009-11-09 20:07:43