фона:Конфликт, когда две раскадровки устанавливают свойство непрозрачности?
У меня есть WPF UserControl (MainControl - не показано в коде ниже), который содержит еще один (так называемый MyControl в коде ниже).
MainControl имеет значение DataContext для объекта, обладающего свойством Project. Когда MainControl загружается, свойство Project всегда равно null.
Проблема:
Когда MainControl нагрузка, я хочу, чтобы исчезнуть в MyControl с помощью специальной раскадровки (используется только этот один раз (это «specialFadeInStoryboard» меняет непрозрачность-свойство MyControl от 0 до 1) .
Если для свойства Project установлено значение, отличное от нуля, я хочу, чтобы MyControl исчезал с помощью «fadeOutStoryboard» (изменяет свойство Opacity-свойства MyControl на 0), и если после этого он будет равен нулю, я хочу на этот раз снова затухает, используя «fadeInStoryboard» (изменяет свойство непрозрачности MyControl на 1).
Однако после добавления кода для «specialFadeInStoryboard» MyControl никогда не исчезает ...
Что я делаю неправильно?
<local:MyControl Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Opacity, Converter={StaticResource opacityToVisibilityConverter}, Mode=OneWay}">
<local:MyControl.Style>
<Style>
<Style.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource specialFadeInStoryboard}"/>
</EventTrigger>
<DataTrigger Binding="{Binding Project, Converter={StaticResource nullToBooleanConverter}, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource fadeInStoryboard}"/>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</local:MyControl.Style>
</local:MyControl>
Спасибо за ответ, но тег дает мне эту ошибку, когда EnterActions это пожары: InvalidOperationException: Название «specialFadeInStoryboard» не может быть найдено в рамках имени 'System.Windows.Style'. Я даже попытался переместить раскадровку, так что это ребенок из ... Но это тоже не работает :( –
kennethkryger
Решил его, создав af Style, с сеттером для «Шаблон Значение шаблона - это ControlTemplate, где все раскадровки определены в разделе «ControlTemplate.Resources» ... – kennethkryger