我試圖淡入控制,當它變得可見。下面的編譯和運行正常,它只是不褪色的(當IsActive設置爲true控制即刻出現)調試觸發器(或爲什麼這個觸發器不工作?)
<UserControl x:Class="blah"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:util="clr-namespace:blah.Util"
mc:Ignorable="d"
d:DesignHeight="250" d:DesignWidth="400">
<UserControl.Resources>
<util:BooleanToVisibilityConverter x:Key="BoolToVis" />
<Style TargetType="UserControl">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="1.0" Duration="0:0:1.25" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<UserControl.Visibility>
<Binding Path="IsActive" Converter="{StaticResource ResourceKey=BoolToVis}" ConverterParameter="False" />
</UserControl.Visibility>
<!-- Snip rest of simple control -->
</UserControl>
首先,我會很感激,如果有人能告訴我這是爲什麼不工作。
其次,我想知道是否有任何方法來調試這些事情,因爲我經常發現自己試圖讓觸發器正常工作。目前我的調試包括盯着XAML嘗試查看錯誤,或隨機更改位來嘗試縮小該區域。
我真正想做的事情就是在<Trigger Property="Visibility" Value="Visible">
位上放一個斷點,看看是否觸發了這一點。很明顯,我不能這樣做,但想知道是否有任何方法可以進行更多的結構化調試,而不是我目前在空白的牆上隨意撥動。 : -/
通常調試觸發我會要麼改變非常明顯的特性,如'Background'或'Foreground'顏色,或者如果不工作,我會用[史努比](HTTP: //snoopwpf.codeplex.com/)來查看某些東西的當前值是在運行時還是當它改變時。 – Rachel 2012-01-16 13:53:43