これは非常に簡単かもしれませんが、私はそれを行う方法を見つけることができませんでした。UWPの点滅のテキスト
私はTextBlockで点滅するテキストがほしいのです。それを簡単に行う方法はありますか?
私が考えることができる唯一の方法は、タイマーを使用してTextBlockフォアグラウンドを手動で変更することです。確かに簡単な方法があります。私はそれを理解することができません。
ありがとうございます!
これは非常に簡単かもしれませんが、私はそれを行う方法を見つけることができませんでした。UWPの点滅のテキスト
私はTextBlockで点滅するテキストがほしいのです。それを簡単に行う方法はありますか?
私が考えることができる唯一の方法は、タイマーを使用してTextBlockフォアグラウンドを手動で変更することです。確かに簡単な方法があります。私はそれを理解することができません。
ありがとうございます!
あなたのXAMLでStoryboard
アニメーションを宣言することができテキストを永久に点滅させるマークアップ:
<TextBlock Text="I'm Blinking!">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Resources>
<Storyboard x:Key="flashAnimation" >
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</Style.Resources>
</Style>
</TextBlock.Style>
</TextBlock>
これは私の経験を使用していますWPFとWinRT XAMLからは問題ありませんが、私はUWPが同じStoryboard
アニメーションを使用していると確信しています。
MSDNの便利なリファレンスは、Animations Overviewです。
希望すると便利です。
点滅するテキストの場合は、タイマーが最も簡単な方法だと思います。 (私はあなたがタイマ&を探していることを理解していますが、代わりに、層は実際に目的を果たすべきです) 以下のようなものがあなたを助けることがあります。
Timer timer = new Timer();
public void Blinker()
{
timer.Interval = 500;
timer.Start();
timer.Tick += new EventHandler(timer_tick);
}
void timer_tick(object sender, EventArgs e)
{
if(label3.ForeColor = System.Drawing.Color.Green)
{
label3.ForeColor = System.Drawing.Color.White;
}
else
{
label3.ForeColor = System.Drawing.Color.Green;
}
}
public void StopBlinker()
{
timer.Stop();
}
blinkerメソッドを適切に呼び出して、テキストを点滅させることができます。
あなたは、このようなコードで、たとえばそれを行うことができますの背後にあるコード(C#)とからまあ、それはまさに私の考えです。しかし、私はストーリーボードのコンセプトが好きです。共有+1: – Sam
:
Storyboard storyboard = new Storyboard();
storyboard.Duration = new Duration(TimeSpan.FromSeconds(10.0));
DoubleAnimation opacityAnimation = new DoubleAnimation()
{
From = 1.0,
To = 0.0,
BeginTime = TimeSpan.FromSeconds(5.0),
Duration = new Duration(TimeSpan.FromSeconds(5.0))
};
Storyboard.SetTarget(opacityAnimation, txtBlink);
Storyboard.SetTargetProperty(opacityAnimation, "Opacity");
storyboard.Children.Add(opacityAnimation);
storyboard.RepeatBehavior = RepeatBehavior.Forever;
storyboard.AutoReverse = true;
storyboard.Begin();
は、あなたがテキストブロックを持っていると仮定すると:
<TextBlock x:Name="txtBlink" FontSize="32">Some text</TextBlock>
ありがとうAlexej、このコードは非常に便利です。 +1! – Sam
文字列をPropertyPathに変換するために 'SetTargetProperty()'の第2引数を 'New PropertyPath(" Opacity ")に変更する必要があるかもしれません。 –
点滅動作を処理し、このストーリーボードを無期限に使用するストーリーボードを作成できます – GeralexGR
フォアグラウンドを変更するXAMLに 'Storyboard'を作成しようとしましたか?あなたのUserControlの 'Loaded'イベントでそれを開始しますか? –