0
在我的WPF應用程序中,我有標準Generic.xaml文件,其中包含我的自定義類的樣式,Frost。WPF動畫在ControlTemplate中完成事件
我需要找到一種方法來掛接我的自定義Frost類的動畫之一的Completed事件,我不能在運行時執行它,因爲它抱怨我需要將IsFrozen設置爲false,不想做(因爲表現)。
如何將事件連接到控件模板的TargetType?
<Style TargetType="{x:Type Controls:Frost}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:Frost}">
<ControlTemplate.Resources>
<Storyboard x:Key="OnEndFrost">
<DoubleAnimation Name="fadeOutFrostAnimation"
BeginTime="00:00:00"
Duration="00:00:02"
Storyboard.TargetName="frostElement"
Storyboard.TargetProperty="(UIElement.Opacity)"
To="0">
</DoubleAnimation>
</Storyboard>
</ControlTemplate.Resources>
<Grid>
<MediaElement x:Name="frostElement"
LoadedBehavior="Manual"
Width="1172"
Height="286.917"
Source="{TemplateBinding SourceUri}"
ScrubbingEnabled="True">
<MediaElement.Effect>
<eff:ChromaKeyAlphaEffect InputColor="#FF0E425E" Tolerance="0.1" />
</MediaElement.Effect>
</MediaElement>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Controls:Frost.EndFrost">
<BeginStoryboard x:Name="OnEndFrost_BeginStoryboard" Storyboard="{StaticResource OnEndFrost}"/>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
「我無法在運行時執行它,因爲它抱怨我需要將IsFrozen設置爲false,我不想這麼做(因爲性能)。」 凍結對象提供更好的性能,所以我不確定你的意思。 – 2009-11-06 03:06:51
凍結的對象不會像內存佔用的內存和線程安全...這也是重要的,糾正我,如果我錯了,當然 – Mark 2009-11-06 04:06:10
這是正確的,但你似乎是說你*不*想要出於性能原因凍結你的物體......?凍結會提高性能,並讓你勾起這個事件。 – 2009-11-06 16:00:13