C#/WPF
-
WPF 라디오 버튼 enum 바인딩(RadoButton Binding enum)C#/WPF 2017. 1. 24. 10:37
WPF 에서 radio 버튼을 사용할 때, 두가지가 아닌 여러가지를 사용하여 enum 형을 관리할 때 각 버튼마다 이벤트를 추가하고, 관리하기가 너무 길어집니다.' 바인딩을 사용하면 편해지는데요, 방법을 알아보겠습니다. 저는 Effect 라는 enum 을 사용하겠습니다. 123456public enum Effect{ None, Shadow, Outline}cs 아래는 Effect 형 변수와 속성입니다. 1234567891011121314public event PropertyChangedEventHandler PropertyChanged; Effect _effects; public Effect Effects{ get { return _effects; } set { _effects = value; if (P..
-
WPF 윤곽선 텍스트(Outlined Text)C#/WPF 2017. 1. 23. 11:00
wpf의 텍스트에 word art처럼 윤곽선 효과를 넣어야 하는데 아무리 찾아보고 찾아봐도 간단한 방법은 없었다. msdn에 예제가 있기는 하지만 상세한 코드들이 다 나와 있지는 않았었고, (링크)stackoverflow에는 아예 사용자 지정 컨트롤을 만들어 주어서 따로 추가한 뒤local 컨트롤을 통해 텍스트를 설정해 주어야 했다. (링크) 하지만 내가 원하는건 껐다 켰다 할 수 있는 윤곽선을 원했기에 최대한 다른 방법을 찾아 보았다. msdn에 예제가 있는 것을 발견했다. (링크) 하지만 이 예제에 있는 방법으로는 껐다 켰다 가 되기는 했지만 위의 사용자 지정 컨트롤과 다를 바 가 별로 없어 보였다.그리고 글이 무조건 left, top 정렬이 되어서 center 정렬이 되지 않았었다. 포기하려던 찰나..
-
WPF 메시지 박스 띄우기(경고창 띄우기)C#/WPF 2017. 1. 16. 16:04
프로그램을 만들다 보면 간단한 메시지를 띄워야 할 때가 있습니다. 윈도우에서는 메시지박스를 띄워주는 방법이 있는데요. 간단하게 띄울 수가 있습니다. 1. MessageBox 라는 클래스의 Show 함수를 사용하면 됩니다. 1MessageBox.Show("보여줄 메시지 입니다.");cs 가장 기본적인 형태는 위와 같습니다. 2. 그 다음에는 제목을 추가할 수 있으며, 간단한 버튼, 간단한 이미지를 넣을 수 있습니다. 1MessageBox.Show("보여줄 메시지 입니다.", "제목 표시줄");cs 3. 간단한 버튼들을 추가할 수 있습니다.OK : 확인OKCancel : 확인 취소YesNo : 예 아니오YesNoCancel : 예 아니오 취소 또한 이 버튼을 누른 결과들을 MessageBoxResult 를 ..
-
WPF 글씨에 그림자 효과 (Shadow Text)C#/WPF 2017. 1. 13. 13:55
폰트에는 따로 그림자를 넣어주는 효과가 없습니다. 그림자는 Label과 같은 컨트롤에 Effect를 통해서 넣어주어야 합니다. (해당 그림자 효과는 Lable, TextBox, TextBlock 등 여러 곳에 사용이 가능합니다. Label로 예를 들어 설명하겠습니다.) DropShadowEffect 라는 클래스를 통해서 해주면 됩니다. (System.Windows.Media.Effects.DropShadowEffect) 이 클래스의 속성들을 통해 그림자를 설정해준 뒤 Label에 적용시켜 주시면 됩니다. 12System.Windows.Media.Effects.DropShadowEffect shadow = new System.Windows.Media.Effects.DropShadowEffect();lbl...
-
C# WPF Font 폰트 클래스 사용(직렬화, Label에 적용)C#/WPF 2016. 12. 29. 14:29
공부하다 보니 WPF에서는 WinForms의 FontDialog에서 입력받은 폰트를 Label에 적용시키기가 번거로웠다. 또한 FontFamily 와 FontWeight등 폰트와 관련된 것들은 json으로 직렬화가 되지 않고, 몇몇은 직렬화가 되어도 정확한 내용이 저장되지 않았다. 그래서 직접 사용하기 위해 클래스를 만들었다. (2017.01.16 수정) WPF에는 Font 클래스가 따로 존재하지 않는다. FontFamily와 FontWeight, FontSize, FontStyle, FontStretch 가 존재하는데, 이들은 각각 서체, 굵기, 크기, 스타일, 늘어나는 정도를 뜻한다. Label은 이들이 각각 따로 설정되어 있어서 한번에 적용시키는 것이 불가능한데, 이를 간편히 하기 위해 ApplyT..
-
WPF Brush 와 SolidColorBrush, ColorC#/WPF 2016. 12. 23. 15:05
WPF 컨트롤들의 Foreground는 보통 Brush 형으로 되어있습니다. 그런데 색을 표현할 때에는 Color 형으로 저장 되는데요.여기서 Color 는 System.Windows.Media.Color 로 구조체 입니다. 그리고 Color 에서 Brush로 바로 대입이 되지 않습니다. 그래서 Color에서 Brush 로 대입하는 방식입니다. Color color = Color.FromRgb(0, 0, 0); // 임의의 Color형 변수Brush bsh = new SolidColorBrush(color); SolidColorBrush 는 Brush를 상속하였기 때문에 이런식으로 SolidColorBrush 를 생성한 뒤 Brush로 대입이 가능합니다. 하지만 반대로 Brush에서 SolidColorB..
-
WPF 에서 toast 메시지 만들기C#/WPF 2016. 12. 5. 14:49
안드로이드에는 알림창으로 toast 메시지가 있습니다. 하지만 wpf에서는 윈도우 메시지 같은 형식밖에 없는데요, Label과 DoubleAnimation을 이용하여 toast 메시지와 비슷한 형식을 만들어 보았습니다. using System.Windows.Media.Animation; private void ToastMessage(string message){lblToast.Content = message; DoubleAnimation dba1 = new DoubleAnimation();dba1.From = 0;dba1.To = 1;dba1.Duration = new Duration(TimeSpan.FromSeconds(1.5)); DoubleAnimation dba2 = new DoubleAnimat..
-
C# WPF 윈도우 전체화면C#/WPF 2016. 11. 29. 15:52
※ 블로그를 이전하며 이 글을 개선하여 포스팅했습니다. (링크) WPF로 만든 윈도우가 전체화면이 되게 하는 것입니다. 참조는 따로 안해주셔도 됩니다. Enter 키를 누를 경우 전체화면/원래상태 로 전환하도록 합니다. private void Window_KeyDown(object sender, KeyEventArgs e) { switch (e.Key) { case Key.Enter: if (this.WindowState == WindowState.Maximized) {// 전체화면 이라면 // 원래 상태로 되돌리기 this.WindowStyle = WindowStyle.SingleBorderWindow; this.WindowState = WindowState.Normal; this.Topmost = f..