Próbuję zrobić siatkę „zanikającą” lub „zanikającą”w zależności od wartości nieruchomości. Właściwość jest wywoływana, ale animacja nie wpływa na siatkę. Moja siatka i wyzwalacze wyglądają tak:
<Grid Background="White"
Opacity="0">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsWaiting}"
Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickIn">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickIn" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding IsWaiting}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickOut">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="1"
To="0"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickOut" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<!-- etc -->
</Grid>
Mój IsWaiting
właściwość wygląda jak:
public bool IsWaiting{
get { return _isWaiting; }
set {
_isWaiting = value;
OnPropertyChanged("IsWaiting");
}
}
W dzienniku wyjściowym nie ma błędów wiązania, gdy zmienia się właściwość. Co ja robię źle?
Odpowiedzi:
2 dla odpowiedzi № 1The <Grid.Triggers>
unieważniają twoje <Style.Triggers>
możesz zastąpić <Grid.Triggers>
animacja po prostu ustawiając IsWaiting
na true, gdy siatka ładuje się lub ustawia na wartość domyślną true bu.