Programing (프로그래밍) 썸네일형 리스트형 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.. 더보기 WPF & C# - 비동기 이벤트 - BackgroundWorker ( 백그라운드워커 / ChangedEvent / Completed / Event ) WPF & C# - 비동기 이벤트 - BackgroundWorker ( 백그라운드워커 / ChangedEvent / Completed / Event ) using System.Windows; using System.Threading; using System.ComponentModel; BackgroundWorker bw; private void btn_Click(object sender, RoutedEventArgs e) { bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.ProgressChanged += bw_ProgressChanged; bw.RunWorkerCompleted += bw_RunWorkerCo.. 더보기 WPF & C# - 멀티쓰레딩 ( 멀티쓰레드 / MultiThread / Threading ) WPF & C# - 멀티쓰레딩 ( 멀티쓰레드 / MultiThread / Threading / 스레드 ) private void btn_Click(object sender, RoutedEventArgs e) { lbl.Content = ""; Thread thread1 = new Thread(new ThreadStart(Thread1)); Thread thread2 = new Thread(new ThreadStart(Thread2)); thread1.Start(); thread2.Start(); } void Thread1() { for (int i = 0; i < 10; i++) { Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { l.. 더보기 WPF & C# - Error 다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다 ( 에러 / 쓰레드 / Thread / Dispatcher.Invoke()) WPF & C# - Error 다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다 ( 에러 / 쓰레드 / Thread / Dispatcher.Invoke()) ' 다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다 ' 위 에러의 경우 UI를 담당하는 스레드가 아닌 다른 스레드가 UI 를 건드릴 때 발생함. ( Cross-thread 라고 함 ) Dispatcher.Invoke() 사용하여 해결하면 된다고 함. using System.Windows.Threading; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { //your code })); [출처] [WPF.. 더보기 이전 1 ··· 4 5 6 7 8 9 10 ··· 35 다음