Текст в вашем приложении не мигает, потому что вы изменяете Видимость метки в скрытом экземпляре MainWindow, который не идентичен тому, который вы видите на экране.
Создано
static MainWindow window = new MainWindow();
но никогда не показывается.
Кроме того, вы должны использовать DispatcherTimer следующим образом:
public partial class MainWindow : Window
{
private readonly DispatcherTimer timer =
new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) };
public MainWindow()
{
InitializeComponent();
timer.Tick += Timer_Tick;
timer.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
HelloWorldLabel.Visibility = HelloWorldLabel.Visibility == Visibility.Visible
? Visibility.Hidden : Visibility.Visible;
}
}
Вы также можете сделать нечто подобное полностью в XAML, например, как это:
<TextBlock Text="Hello, World.">
<TextBlock.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty="Visibility"
Duration="0:0:4" RepeatBehavior="Forever">
<DiscreteObjectKeyFrame
KeyTime="0:0:0"
Value="{x:Static Visibility.Visible}"/>
<DiscreteObjectKeyFrame
KeyTime="0:0:2"
Value="{x:Static Visibility.Hidden}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>