Я только начал изучать WPF и XAML, и я попытался получить образец анимации для работы на моей машине. В принципе, фон метки должен меняться, когда определенное значение задано в соответствующем текстовом поле. Выпуск я получаю следующее сообщение об ошибке: Background 'свойство не указывает на DependencyObject в пути' (0) (1)Проблема зависимости анимации WPF
Это XAML:.
<Window x:Class="WpfDataBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:loc="clr-namespace:WpfDataBinding"
Title="MainWindow" Height="350" Width="264.828">
<Window.Resources>
<DataTemplate DataType="{x:Type loc:Person}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="210"/>
</Grid.ColumnDefinitions>
<TextBlock Name="nameLabel" Grid.Row="0" Grid.Column="0" Text="Name:" FontSize="14" Margin="3,3,0,0"/>
<TextBox Name="nameTextBox" Grid.Row="0" Grid.Column="1" Width="200" Text="{Binding Name}" FontSize="14" Margin="3" />
<TextBlock Name="ageLabel" Grid.Row="1" Grid.Column="0" Text="Age:" FontSize="14" Margin="3,3,0,0"/>
<TextBox Name="ageTextBox" Grid.Row="1" Grid.Column="1" Width="200" Text="{Binding Age}" FontSize="14" Margin="3"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Age}" Value="21">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="ageLabel"
Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)"
To="Red" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Window.Resources>
<Grid Margin="0,0,0,-0.2" HorizontalAlignment="Left" Width="248">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ListBox ItemsSource="{Binding}" />
<StackPanel Grid.Row="2" Grid.ColumnSpan="2">
<Button Content="_Show.." Click="Button_Click"/>
<Button Content="_Age" Click="Button_Click_1"/>
</StackPanel>
</Grid>
Спасибо
Я сделал это, и у меня возникла другая ошибка: анимационный объект System.Windows.Media.Animation.ColorAnimation не может использоваться для анимации свойства «Фон», поскольку он имеет несовместимый тип «System.Windows.Media.Brush», , –
Я отредактировал мой вопрос ageLabel имеет тип TextBlock, поэтому вы должны использовать (TextBlock.Background). (SolidColorBrush.Color) –
Я использовал TextBlock.Background, и снова получаю первую ошибку. Странно, я получаю эту ошибку, когда я поднимаю событие уведомления для изменения значения текстового поля. Если я прокомментирую событие raise, просто чтобы проверить, я больше не получаю ошибку, но анимация does'nt работает в любом случае. –