テキストボックスの色を緑に変更し、確認の方法として白にフェードバックしようとしています。これまでのコードは次のとおりです。C#でループ内の色を薄くする
private void btnCommit_Click(object sender, EventArgs e)
{
//do stuff
Color c = new Color();
for (int i = 0; i <= 255; i++)
{
c = Color.FromArgb(i, 255, i);
textBox1.BackColor = c;
System.Threading.Thread.Sleep(10);
}
}
これは機能しません。私が何か他のことをすることができるようになるには2.5秒を待つように見えますが、色はいつも白くとどまります。
UIスレッドでbtnClickが実行されているため、フリーズしています。下の図のようにWPFアニメーションを使用するか、または非同期を使用するか、Dispatcher.BeginInvokeを使用してBackColorを更新するバックグラウンドタスクでこのコードを実行してください –
これはどのコンテキストで使用されますか?あなたはこの仕事のためにCSSやLESSを使うことを考えましたか? –