본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - ComboBox & Enum 사용법 ( 콤보박스, 드롭박스, DropBox ) WPF & C# - ComboBox & Enum 사용법 ( 콤보박스, 드롭박스, DropBox ) MainWindow.xaml MainWindow.xaml.cs public MainWindow() { InitializeComponent(); // 입력방식 : enum 명칭 ( Naver, Kakao, Google ) cbx01.ItemsSource = Enum.GetValues(typeof(enumServer)); } enum enumServer { Naver = 1, Kakao, Google = 4 } enumServer selectServer; private void cbx01_SelectionChanged(object sender, SelectionChangedEventArgs e) { if(sel.. 더보기
WPF & C# - List<string> 동적 배열 ( 리스트 / array / dictionary ) WPF & C# - List 동적 배열 추가, 삭제 ( 리스트 / array / dictionary / AddRange / RemoveAll ) 파일읽고 라인별로 배열에 넣기 List list = new List(); string saveFile = @"data.txt"; using (StreamReader sw = new StreamReader(saveFile)) // 파일 읽기 { list.AddRange(sw.ReadToEnd().Split('\n','\r')); // 라인별로 배열에 넣기 list.RemoveAll(s => s.Trim() == ""); // 빈 문자열은 배열에서 삭제 } 참고 insurang.tistory.com/259 더보기
WPF & C# - TextBox 에서 ContextMenu 변경하기 ( SelectedText / 텍스트선택 / 마우스우클릭메뉴 ) WPF & C# - TextBox 에서 ContextMenu 변경하기 ( SelectedText / 텍스트선택 / 마우스우클릭메뉴 ) public MainWindow() { InitializeComponent(); CreateTextBox(); // TextBox 생성 } void CreateTextBox() { // TextBox 생성 TextBox tbx = new TextBox(); tbx.Text = "123456789"; tbx.FontSize = 20; grdMain.Children.Add(tbx); // 컨텍스트메뉴 생성 ( ContextMenu ) ContextMenu contextmenu = new ContextMenu(); MenuItem mid = new MenuItem(); mid... 더보기
WPF & C# - RoundButton ( 둥근버튼 만들기 / CornerRadius / Style ) WPF & C# - RoundButton ( 둥근버튼 만들기 / CornerRadius / Style ) RoundButton ( 둥근버튼 만들기 / CornerRadius / Style ) 두가지 방법이다. 하나는 로컬리소스 Resources 에 넣어서 여러버튼에 동일하게 적용할 시 유용하게 쓰는 방법과 다른하나는 태그로 직접넣어서 한두개 버튼에 쉽게 적용하는 방법이다. 태그 아래에 넣는 방법 리소스에 넣는 방법 Border 부분에 CornerRadius="15" 코드를 넣어주면 된다. 더보기
WPF & C# - Grid 만들기 WPF & C# - Grid 만들기 public MainWindow() { InitializeComponent(); Init(); } void Init() { int numGrd = 0; // 생성된 grid 갯수 int intTotal = 9; // 생성하려는 grid 갯수 int intStartNum = 4; // 시작위치 int intGaro = 10; // 가로 열 갯수 // 가로 열 생성 for (int colum = 0; colum < intGaro; colum++) { bgGrd.ColumnDefinitions.Add(new ColumnDefinition()); } // 세로 행 생성 for (int y = 0; y < ((intTotal-1 + intStartNum ) / intGaro) .. 더보기
WPF & C# - struct 구조체 WPF & C# - struct 구조체 struct Test { public int x; public int y; public int z; } private void Button_Click(object sender, RoutedEventArgs e) { Test a = new Test(); a.x = 1; a.y = 2; a.z = 3; lbl01.Content = a.x; lbl02.Content = a.y; lbl03.Content = a.z; } 더보기
WPF & C# - Interlocked ( 멀티쓰레딩에서 변수 변경 시 필수 / lock 대체 / 멀티쓰레드 / MultiThread / Threading ) WPF & C# - Interlocked ( 멀티쓰레딩에서 변수 변경 시 필수 / lock 대체 / 멀티쓰레드 / MultiThread / Threading ) 동시에 여러 쓰레드에서 외부 변수를 POP 하거나 Peek 할 때 문제가 발생할 수 있다. ( POP, Peek 뭔 말인지 잘 모르겠다. 어쨌든 문제가 되는부분은 변수를 읽을때는 아니고 변경할 때를 말하는 듯 하다. ) 한 쓰레드에서 외부 변수를 변경하고 있을 때, 다른 쓰레드에서 그 변수를 읽는다면 전혀 다른 값이 발생 할 수 있다는 뜻이다. 이를 해결하기 위한것이 lock 였다. 그러나 lock 속도를 많이 잡아먹고 잘못 사용할 경우 교착상태에 빠지는등의 이슈가 발생되는 문제가 발생한다. 이를 방지하고자 나온것이 Interlocked 이다. .. 더보기
WPF & C# - TextBoxWaterMark ( 워터마크 / 배경글자 / 텍스트박스 ) WPF & C# - TextBoxWaterMark ( 워터마크 / 배경글자 / 배경글씨 / 텍스트박스 / BackgroundText / 백그라운드텍스트 ) Text 삭제 private void tbx_TextChanged(object sender, TextChangedEventArgs e) { if (tbx.Text == "") tbk.Visibility = Visibility.Visible; else tbk.Visibility = Visibility.Hidden; } private void tbx_GotFocus(object sender, RoutedEventArgs e) { tbk.Visibility = Visibility.Hidden; } private void tbx_LostFocus(object.. 더보기