본문 바로가기

개발/C#10

wpf - 컨트롤 포커스 하기 프로그램을 실행시켰을 때 마우스를 클릭하지 않아도 컨트롤에 커서가 깜빡이기 위해서는 포커스가 필요하다. 포커스를 하기 위해서는 xaml 상에서는 안되는것으로 확인된다. control.Focus(); 코드상에서 시작 할때 focus 해주면 가능하다. 2022. 5. 6.
wpf - '탭'키 누를 시 탭 이동하기 tabIndex wpf 에서 TAB 키를 누를 시 자동으로 다음 textbox 로 이동하게끔 하고 싶을때는 컨트롤의 속성에서 tabIndex 부분만 수정해주면 된다. 기존의 TabIndex 는 값이 저런식으로 임의로 들어가있는것을 확인할 수 있다. 이런식으로 TabIndex 의 숫자 부분을 자신이 원하는 Tab 의 순서대로 작성해주면 된다. 코드에서 작성 시에도 control.TabIndex = 4; 이런식으로 넣어주면 된다. 2022. 5. 6.
wpf - CheckBox 체크 색상 변경하기 위의 체크박스는 기본적으로 있는 체크박스이다. 코드는 그냥 체크박스를 하나 가져오기만 한것이다. 그러나 체크박스 안의 체크 시 색을 변경하고 싶다면 아래의 해당 코드를 추가해줘야 한다. 체크 시 체크가 안되었을 시 색상 또한 지정해줄 수 있다. 색상을 지정해주면 아래와 같이 체크 박스의 색상을 설정할 수 있다. 2022. 4. 19.
wpf - CheckBox 박스 크기 변경하기 wpf 의 checkbox 의 크기를 늘려도 box 의 크기는 커지지 않는다. Text 의 크기를 변경해도 box 의 크기는 커지지 않았다. 구글링을 하던 도중 방법을 발견했다. 체크박스 안의 레이아웃 속성을 건드리는 것이었다. 원하는 크기에 맞게 Scale 을 조절해주면 된다. 핵심 코드는 아래의 코드이다. CheckBox 안에 추가해주기만 하면 된다. 2022. 4. 19.
wpf - ConvertFromString 버튼 클릭 시 색 변경하기 wpf 버튼 클릭 시 색 변경에 대해 알아보고자 합니다. 버튼의 Background 를 변경하려면 Color 지정만으로는 안됩니다. 그래서 SolidColorBursh 를 불러와야합니다. 또한 원하는 색상이 #FFFFFFFF 일 경우 변환을 해줘야합니다. private void btn_gateway_click(object sender, RoutedEventArgs e) { Color mColor = (Color)ColorConverter.ConvertFromString("#FF1457ED"); btn_mode_gateway.Background = new SolidColorBrush(mColor); mColor = (Color)ColorConverter.ConvertFromString("#FF161618".. 2022. 4. 14.
wpf - 전환되는 페이지 만들기 우선 저 grid 안에 다른 페이지를 넣고 위의 버튼을 누를 시 변환시키려고 한다. 찾아보니 Frame 이라는 좋은 컨트롤이 있어 그것을 사용해보도록 한다. 처음에 Grid 안에 Frame 을 선언해서 넣어주도록 합니다. 그리고 NavigationUIVisibility 부분은 숨겨주도록 합니다. 네비게이션이 위에 보이는 흰색 바 입니다. xaml 안에 저렇게 입력해주시고 코드상으로 변환하는부분을 만들어주시면 됩니다. menuBar.Source = new Uri("UC_gateway_menu.xaml", UriKind.Relative); menuBar.Source = new Uri("UC_listener_menu.xaml", UriKind.Relative); 클릭 했을 시 menuBar 라고 선언한 Fra.. 2022. 4. 14.
c# 윈폼 - Thread 에서 UI 접근하기 c# 윈폼에서 Thread 안에서 UI의 값을 수정하려고 하면 에러가 뜹니다. System.InvalidOperationException: '크로스 스레드 작업이 잘못되었습니다. 'btn_SocketConnect' 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다.' 해당에러를 없애려면 몇가지 작업만 해주면 됩니다. btn_SocketConnect.Text = "Disconnect"; 기존의 버튼의 텍스트 값을 바꾸는 코드입니다. if (btn_SocketConnect.InvokeRequired) { // 작업쓰레드인 경우 btn_SocketConnect.BeginInvoke(new Action(() => btn_SocketConnect.Text = "Disconnect")); } els.. 2022. 3. 30.
Wpf - 윈도우 최상위 위치 시키기 부모 윈도우에서 자식 윈도우를 생성 시 ChildWindow childWindow = new ChildWindow(); childWindow.Show(); 이렇게 간단하게 호출할 수 있다. 그러나 호출 시 최상위로 불러와지진 않는다. window.Topmost = true; 라는 속성도 있지만 Topmost 를 사용할 경우 다른 자식 창을 호출하더라도 부모창을 클릭하더라도 Topmost = true; 되어있는 윈도우가 계속해서 최상단에 위치하게 된다. 아래와 같이 설정하도록 한다. ChildWindow childWindow = new ChildWindow(); childWindow.ShowInTaskbar = true; childWindow.Visibility = Visibility.Visible; ch.. 2022. 3. 15.
Wpf - '일관성 없는 액세스 가능성' : 매개변수 형식이 메서드보다 액세스하기 어렵습니다. [WPF] 개발 중 에러가 발생했습니다. '일관성 없는 액세스 가능성' : 매개변수 형식이 메서드보다 액세스하기 어렵습니다. 확인한 결과 클래스 내에 메서드를 정의 할 시 발생하는 에러였습니다. 함수안을 보시면 제가 class_DevName 이라는 다른 클래스를 불러왔습니다. 함수에는 문제가 없으므로 이 클래스 안을 살펴보는것이 좋습니다. 해당 클래스를 살펴보니 class 앞에 public 이 빠져있는것을 알 수 있었습니다. public 이 빠져있어서 함수를 호출하는것보다 클래스를 호출하는 것이 더 어려웠다. 라고 이해할 수 있을 것 같습니다. class 앞에 public 을 넣어 에러를 해결하도록 합니다. 불러오는 class 에 public 을 붙여주니 에러가 사라졌습니다. 도움이 되셨다면 구독하기와 .. 2022. 3. 14.
Wpf - InvalidOperationException 에러 원인 WPF 에서 사용자 정의 컨트롤을 생성해 잘 사용중이였는데 에러가 발생했다. 이유를 살펴보니 기존에는 그냥 사용했지만 이번에는 Thread 안에서 사용했기 때문이다. 쓰레드에서 다른 UI 를 건드려서 그런것 같다. 에러가 발생한곳을 찾아보니 유저 컨트롤을 등록하는 부분에서 발생했다. 그래서 저부분과 밑에 코드들을 감싸주니 해결되었다. 해결방법 Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { ////Your Code ////User Control })); 유저 컨트롤을 저 안에 넣어서 작업을 진행하니 해결되었다. 도움이 되셨다면 구독하기와 좋아요 눌러주세요. 감사합니다. ♥ 글 읽어주셔서 감사합니다. 2022. 3. 3.
반응형