フォームといくつかのラベルがあります。上記のフォームでスクリーンセーバーを作成しています。これまでのところ、テキスト ラベルをさまざまな間隔で表示することができました。
しかし、私はそれをさらに一歩進めたいと思っています。上または下から右または左方向にテキストをスクロールさせたいと思います。これを C# で直接行うことはできますか? どのように?
役立つ回答をいただければ幸いです。ありがとう。
そのようなものを見たことがありません... しかし、Expression Blend が何であるかを知っていれば、独自の要素スタイル (色、形、サイズ、アニメーション) を作成できます。あなたはそこでそれを実現しようとすることができます...
あなたとそのようなことをしたい他の人は、次のフレームワークを簡単に使用できます。
WinForm アニメーション ライブラリ [.Net3.5+]
.Net WinForm (.Net 3.5 以降) でコントロール/値をアニメーション化するためのシンプルなライブラリ。キー フレーム (パス) ベースで完全にカスタマイズ可能。
https://falahati.github.io/WinFormAnimation/
new Animator2D(
new Path2D(new Float2D(-100, -100), lbl_label.Location.ToFloat2D(), 500))
.Play(lbl_label, Animator2D.KnownProperties.Location);
lbl_label
これにより、ラベルが -100、-100 から最初の位置に 500 ミリ秒でスライドされます。
間隔の短いタイマーを作成し、次を使用します。
//Move right:
label1.Location = new Point(label1.Location.X + 1, label1.Location.Y);
//Move left:
label1.Location = new Point(label1.Location.X - 1, label1.Location.Y);
多分このようなもの:
private void timer1_Tick(object sender, EventArgs e)
{
if (label1.Location.X <= Width)
label1.Location = new Point(label1.Location.X + 1, label1.Location.Y);
else
label1.Location = new Point(0, label1.Location.Y);
}