๐ฉ๐ป๐พ
[C#/WPF] ํ์ ๋ฉ์ธ์ง ๋์ฐ๊ธฐ ๋ณธ๋ฌธ
์ด๋ฒ ํฌ์คํ ์์๋ WPF ๋ด์์ ํ์ ๋ฉ์ธ์ง๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ฑํ๋๋ก ํ๊ฒ ์ต๋๋ค.
WPF์์๋ ํ์ ๋ฉ์ธ์ง ํ์์ด MessageBox๋ฐ์ ์์ด์ ์๋๋ก์ด๋ ์คํ๋์ค์์ ์ฌ์ฉ๋๋ ํ์ ๋ฉ์ธ์ง ๊ธฐ๋ฅ์ธ ํ ์คํธ(Toast)๋ฅผ TextBlock๊ณผ DoubleAnimation์ ์ด์ฉํ์ฌ ๋น์ทํ๊ฒ ๋ง๋ค์ด ๋ดค์ต๋๋ค.
์ฐ์ , ๋ฒํผ์ด ๋๋ ธ์ ๋ ํ์ ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ํ๊ธฐ ์ํด Button๊ณผ ๋ฉ์ธ์ง๋ฅผ ๋์ธ TextBlock์ ์์ฑํด์ค๋๋ค.
๋ค์์ผ๋ก, ํ์ ๋ฉ์ธ์ง๋ฅผ ๋์ธ ํจ์๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
private void ToastMessage(string message)
{
Color clr = Color.FromRgb(200, 210, 145);
SolidColorBrush brush = new SolidColorBrush(clr);
txtblk.Text = message;
txtblk.Background = brush;
DoubleAnimation dba1 = new DoubleAnimation();
dba1.From = 1;
dba1.To = 1;
dba1.Duration = new Duration(TimeSpan.FromSeconds(1));
DoubleAnimation dba2 = new DoubleAnimation();
dba2.From = 1;
dba2.To = 0;
dba2.Duration = new Duration(TimeSpan.FromSeconds(1));
dba1.Completed += delegate (object sender1, EventArgs e1)
{
txtblk.BeginAnimation(OpacityProperty, dba2);
};
txtblk.BeginAnimation(OpacityProperty, dba1);
}
์ ์ฝ๋ ์ค๋ช ์ ๊ฐ๋จํ ํ์๋ฉด, txtblk๋ ์์ ์์ฑํ TextBlock์ ์ด๋ฆ์ ๋๋ค.
xaml์์ TextBlock์ Background๋ฅผ ์ง์ ํด์ฃผ๋ฉด ํ์ ๋ฉ์ธ์ง๊ฐ ๋จ๊ธฐ ์ ๋ถํฐ ํ๋ฉด์ TextBlock์ด ๋ํ๋๊ธฐ ๋๋ฌธ์ ํจ์ ํธ์ถ์ Background ๊ฐ์ด ์ค์ ๋๋๋ก cs์์ ์ค์ ํด์ฃผ์์ต๋๋ค.
์ด๋, xaml์์๋ ์์์ ์ ๋์ฝ๋๋ก ์ง์ ํด์คฌ๋ค๋ฉด cs์์๋ ์์๊ฐ์ R,G,B๊ฐ์ผ๋ก ์ง์ ํด์ค์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋งค๊ฐ๋ณ์๋ก ํ์ ์ผ๋ก ๋์ธ ๋ฉ์ธ์ง๋ฅผ ์ ๋ ฅ ๋ฐ์ txtblk์ Text์ ์ ์ฅํด์ค๋๋ค.
๋ค์์ผ๋ก, 2๊ฐ์ DoubleAnimation์ ๋ง๋ค์ด์ฃผ์์ต๋๋ค.
dba1์ด ๋๋ ๋ค, dba2๋ฅผ ์คํํ์ฌ TextBlock์ opacity๊ฐ 1์์ 0์ผ๋ก ๋ณํ์ฌ ๋ฉ์ธ์ง๊ฐ ์์ํ ์ฌ๋ผ์ง๋๋ก ๋ง๋ค์์ต๋๋ค.
๋ฉ์ธ์ง๊ฐ ์์ํ ๋ํ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด ์ ์ฝ๋์์ 'dba1.From = 1' ์ 'dba1.From = 0' ์ผ๋ก๋ง ์์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
(์ด๋, DoubleAnimation์ ์ฌ์ฉํด์ฃผ๊ธฐ ์ํด์๋ ' using System.Media.Animation; ' ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํฉ๋๋ค.)
๋ง์ง๋ง์ผ๋ก, Button ํด๋ฆญ ์ด๋ฒคํธ ํจ์์ ToastMessage ํจ์๋ฅผ ํธ์ถํด์ค๋๋ค.
private void Button_Click(object sender, RoutedEventArgs e)
{
ToastMessage("\n2oo1s.tistory");
}
ํ๋ก๊ทธ๋จ์ ์คํํด๋ณด๋ฉด ๋ฒํผ์ ๋๋ ์ ๋, TextBlock ์์น์ ๋ฉ์ธ์ง๊ฐ ๋ด๋ค๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
'Language > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#/WPF] ToggleButton ๋๋ฆผ ๊ฐ์ ์ ํํ๊ธฐ (0) | 2023.02.02 |
---|---|
[C#/WPF] ๋ฒํผ ๋ชจ์๋ฆฌ ๋ฅ๊ธ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.01.30 |
[C#/WPF] ํ์ฌ ๋ ์ง์ ์๊ฐ ํ์ํ๊ธฐ (0) | 2023.01.27 |
[C#/WPF] ์ธ๋ถ ํฐํธ ์ ์ฉํ๊ธฐ (0) | 2023.01.27 |