본문 바로가기

프로그래밍/C#, WPF, Winform

(9)
Visual Studio에서 두 단어가 모두 포함된 줄을 찾는 정규식 Visual Studio에서 두 단어가 모두 포함된 줄을 찾기 위한 정규식은 다음과 같이 작성할 수 있습니다: Visual Studio를 열고 대상 파일을 엽니다. Ctrl + Shift + F를 눌러 검색 창을 엽니다. "정규식 사용" 옵션을 체크합니다. 다음 정규식을 검색 창에 입력합니다: ^(.*단어1.*단어2.*|.*단어2.*단어1.*)$ 여기서 "단어1"과 "단어2"를 실제로 찾고자 하는 단어로 대체해야 합니다. "모두 찾기" 버튼을 클릭하여 일치하는 줄을 찾습니다. 이 정규식은 "단어1"과 "단어2"가 모두 포함된 줄을 찾을 수 있습니다. 두 단어의 순서에 상관없이 존재하는 경우를 모두 찾아줍니다.
wxWidgets cannot initialize OLE TWAIN을 이용해 Kodak CareStream DS를 호출할 때 나타나는 오류입니다. 이상한건 어떤 PC는 오류가 나고 어떤 PC는 오류가 안나서 한참을 고생했던 이슈입니다. 프로그램 본체는 C# WPF 기반의 프로그램이고 Saraff TWAIN을 이용해서 기능을 개발했습니다. twain.Acquire(); 함수를 통해 촬영을 시작할 때 아래 오류창이 5번 표시됩니다. 창을 닫고 나면 기능이 정상 동작하지만 여간 불편하기 때문에 이슈를 해결해야 했습니다. PC마다 증상이 달라서 재배포 패키지나 3rd파티 프로그램 문제일 줄 알았는데.. 원인은.. twain.Acquire(); 함수 호출 이후에 화면이 멈추기 때문에 스레드를 이용해 실행하면서 생기는 문제였습니다. System.Threading.Thre..
[C#] 스레드에 안전한 파일 입출력 방법 (Thread safe File I/O) 멀티 스레드로 부터 안전한 파일 입출력 방식 중 가장 쉽고 간편하며 좋은 방식이다. FileStream과 StreamReader를 이용한 파일 쓰기는 Json 객체를 쓸때 종종 오류가 생긴다. 이유를 알면 댓글 부탁드립니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 private object _fileLock = new object(); public void SafeWriteFile(string path, string data, Encoding encoding) { try { lock (_fileLock) { File.WriteAllText(path, data, encoding); } } c..
[WPF] ScrollViewer가 스크롤 할 때 보여지는 부분만 업데이트 한 화면에 Usercontrol을 화면을 넘치게 그리는 경우가 종종있다. 그럴 경우 ScrollViewer 컨트롤을 사용한다. 너무 많은 Usercontrol을 업데이트(먼가 힘든 작업)를 할 때 리소스를 많이 잡아 먹는다. 그래서 휴대폰 앱에서와 같이 스크롤된 부분만 그리는 작업이 필요하다. 화면에 보여지는 Usercontrol의 이벤트를 받아서 처리하면 먼가 깔끔하게 될거 같은데 현재로선 방법을 찾기힘들다. 그래서 대안으로 스크롤된 위치와 Usercontrol의 위치를 비교해서 처리하는 방식으로 구현을 했다. MainWindow.xaml http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft..
[C#] Winform / WPF Textbox에 한글 입력 방지(영어, 숫자만 입력하기) Winform Textbox 속성에 ImeMode를 Disable로 적용 WPF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 private void Textbox_PreviewTextInput(object sender, TextCompositionEventArgs e) { var regex = new Regex(@"[^a-zA-Z0-9\s]"); if (regex.IsMatch(e.Text)) { e.Handled = true; } } private void Textbox_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space || e.Key == Key.ImeProcessed) { e.Handled = tr..
[WPF] 자석 기능(Sticky) 윈도우 12345678910111213141516171819202122232425262728293031323334353637383940414243444546using System;using System.Windows;using System.Windows.Forms;using System.Windows.Input; namespace NPMon_WPF.Widget{ /// /// WidgetStatus.xaml에 대한 상호 작용 논리 /// public partial class WidgetStatus : Window { public WidgetStatus() { InitializeComponent(); this.MouseLeftButtonUp += OnMouseLeftButtonUp; } private void W..
ComboBox를 클릭하면 Telerik WPF Chart와 모든 UI 컨트롤이 느려질 경우 ComboBox를 클릭하면 Telerik WPF Chart와 모든 UI 컨트롤이 느려는 경우가 있다. App.xaml.cs 파일에 아래 코드 한줄만 넣으면 해결된다. 1 2 3 4 5 6 7 8 9 10 using Telerik.Windows.Automation.Peers; public partial class App : Application { public App() { AutomationManager.AutomationMode = AutomationMode.Disabled; this.InitializeComponent(); } } Colored by Color Scripter cs 관련 이슈 : RadCartesianChart Performance goes down when clicking combo..
C# WPF DataGrid에 UserControl을 넣고 UserControl에서 원하는 동작을 하기 XAML 1 2 3 4 5 6 7 8 9 10 11 Colored by Color Scripter cs Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 using System.Windows; using System.Windows.Controls; namespace TestProject.Controls { public partial class UserControl1: UserControl { public UserControl1() { InitializeComponent(); this.DataContextChanged += UserControl1_DataContextChanged; } private void UserControl1_DataContext..