Ahoj,
potřeboval bych prosím docela pomoct, protože už jsem vyčerpal všechny své pokusy/omyly, co mě napadly.
Kvůli animaci jsem si odvodil z TextBlocku vlastní CustomTextBlock, není na něm nic moc zvláštního, ale vypadá takhle:
public class CustomTextBlock : TextBlock
{
public static readonly RoutedEvent ShowTextEvent =
EventManager.RegisterRoutedEvent("ShowText", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(CustomTextBlock));
public event RoutedEventHandler ShowText
{
add
{
this.AddHandler(ShowTextEvent, value);
}
remove
{
this.RemoveHandler(ShowTextEvent, value);
}
}
}
v XAMLu mám potom:
<local:CustomTextBlock x:Name="InfoTextBlock" Text="{Binding InfoTextBlockText, Mode=TwoWay}" Width="411" Height="54" FontSize="36" FontWeight="Normal" Canvas.Left="258" Canvas.Top="265">
<local:CustomTextBlock.Foreground>
<SolidColorBrush x:Name="InfoSolidColorBrush" Color="Transparent" />
</local:CustomTextBlock.Foreground>
<local:CustomTextBlock.Triggers>
<EventTrigger RoutedEvent="local:CustomTextBlock.ShowText">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="InfoSolidColorBrush" Storyboard.TargetProperty="Color" From="GreenYellow" To="Transparent" Duration="0:0:3"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</local:CustomTextBlock.Triggers>
</local:CustomTextBlock>
Je tam trigger, protože tu animaci potřebují zavolat z kódu, ovšem z View na základě co mi na převolání ViewModel vrátí.
A volám to takto:
InfoTextBlock.RaiseEvent(new RoutedEventArgs(CustomTextBlock.ShowTextEvent, this));
Je mi jasné, že když přeteče zásobník, musím tam mít někde cyklickou závislost, jenže ji nevídím.
Proto jsem chtěl poprosit, jestli by se na to někdo z vás mohl podívat svýma očima, třeba je to něco triviálního.
Byl bych vám za to moc vděčný.
Díky za případnou radu.