본문 바로가기

반응형

개발자/WPF(C#) UI

WPF 기본 동작구조 WPF 빌드 및 동작 구조 먼저 WPF 응용프로그램을 만들었습니다. App.xaml 과 MainWindow.xaml 이렇게 두개가 생성되었네요. 먼저 App.xaml 을 살펴보도록 하겠습니다. 왜냐면, 이게 프로그램의 Entry Point 니까요. [App.xaml] 가장 처음 WPF(XAML) 를 접했을때, '뭐가 이렇게 네임스페이스가 많아?' 라고 생각했습니다. :) xmlns 과 xmlns:x 는 clr 에서 정의된 내용이라고 추측하고 있습니다. (이 부분에 대해서는 자료를 좀 찾아보려 했는데, 잘 보이지 않네요.) 모쪼록 이 두개의 네임스페이스는 꼭 필요하다고만 짚고 넘어가겠습니다. x:Class 가 하는 일은? x:Class 는 역시나 clr 내부적으로 정의된 부분인것으로 추측되는데요. msdn.. 더보기
c# Joystick 거리, degree->좌표 변환 삼각함수 이용 Math.Sin(x); Math.Cos(x); Math.Tan(x); Sin(x) : 라디안 x 각도의 sin값을 반환합니다. Cos(x) : 라디안 x 각도의 cos값을 반환합니다. Tan(x) : 라디안 x 각도의 tan값을 반환합니다. 코딩에서는 라디안각도를 이용해서 math함수를 이용한다. 180 degree = π radian 1 degree = π / 180 radian x degree = x * π / 180 radian π radian = 180 degree 1 radian = 180 / π degree x radian = x * 180 / π degree 더보기
Visual Studio에서 프로그램 컴파일 시 dll 포함 [그림 1] "dll을 찾을 수 없습니다." 평소 Visual Studio를 사용하여 프로그래밍을 해서 다른 사람한테 프로그램을 넘겨줄 때 상대방은 Visual Studio가 안깔려있는 경우가 많다. 그러면 상대방이 내가 준 프로그램을 실행시키려 할 때 [그림 1]과 같이 dll을 찾을 수 없다고 하며 실행을 할 수 없는데 그 이유는 visual studio가 default로 동적 라이브러리 방식으로 컴파일을 하기 때문이다. 따라서 이런 상황이 발생할 경우 컴파일 옵션을 정적 라이브러리 방식으로 바꿔 줘야하는데 Debug모드일 때와 Release모드일 때 설정법이 약간 다르다. [그림 2] Compile 옵션 설정 화면 [그림 2]와 같이 Project우클릭 - [Properties] - [Configu.. 더보기
[WPF] UI Thread 연동을 위한 팁 이번 포스트 에서는 WPF에서 UI 변경 작업을 하기 위해 유용한 팁에 대해서 소개 하고자 한다. 먼저 WinForm 이나 WPF나 첫 시작은 STA 라는걸 이해해야 한다. Main 메서드위에 [STAThread]라는 어트리뷰트를 본적이 있을것이다. Single-Threaded Apartment 라는것으로 프로그램의 UI나 대부분의 메서드, 프로퍼티들이 활동하는 Thread 이다. [* STA라는 용어는 COM에서 사용된 것인데, STA 객체는 하나의 Thread(보통 그 객체를 생성한 Thread) 에서만 엑세스 할 수 있도록 하는 규칙 과 제한을 뜻 한다. ] 일반적인 UI 관련 객체는 해당 UI 개체를 생성한 Thread 에서만 접근하도록 되어 있다. WinForm에서도 한 Thread 에서 생성한.. 더보기