본문 바로가기

Programing/닷넷

(41)
[WPF] 변환(Transform)의 종류 총 5개의 종류의 Transform이 있다.Rotate TransformScale TransformSkew TransformTranslate TransformMatrix Transform 클래스별로 계층화하면 아래와 같다. (출처: WPF 2D Transformations :: CodeGuru) 동시에 여러개의 변환을 할 필요가 있을 경우에는 TransformGroup으로 묶으면 된다. 위의 그림에도 나와 있지만 MatrixTransform은 단독으로만 쓸 수 있다. ref. Transformation in WPF 2011.05
Debug.Assert를 이용한 로깅 Debug.Assert는 원래 Release 모드에서는 더 이상 동작하지 않는다. Release 모드를 위해서는 Trace.Assert가 있기 때문이다. 하지만 configuration 파일을 이용해서 프로퍼티를 수정하면 Release 모드일 경우에도 동작하게 할 수 있다고 Debug.Assert Method (Boolean, String)에 쓰여 있다.
LINQ 예제 문자열 붙이기 Aggregate와 StringBuilder를 같이 쓰면 성능도 보장하면서 표현도 괜찮아진다. string[] someData = ...string concatedString = someData.Aggregate(new StringBuilder(), (sb, data) => sb.Append(data)).ToString(); 데이터 필터 where 조건에서 걸러내면 된다. &&로 결합하면 이상하게 되니 연달아 쓰길 권장한다. // 0x00 값을 제외하기, 가져올 때는 string 타입으로 가져왔다.byte[] someData = ...var filtered = from byte b in someData where b != 0x00 select Char.ConvertFromUtf32(b);
도를 라디안으로 변환하기 아래 코드 사용 internal class MathHelper { internal static double DegToRad(double degrees) { return (degrees / 180.0) * Math.PI; } }
UAC관련 개발사항 애플리케이션에서 실행시 권한 조정: 메니페스트 파일 이용 프로젝트: 오른쪽 클릭 > 추가 > 새 항목 > [범주: 일반] 응용 프로그램 매니페스트 파일 매니페스트 파일에서 level을 주석을 보고 설정한다. asInvoker, requireAdministrator, highestAvailable 세 가지 타입이다. 최소 권한의 원칙 지키기: 보안쪽에 유명한 말이다. 권한은 현재 필요한 최소한의 권한만 요청하라는 것이다. 애플리케이션이 수행하는 대부분의 기능이 관리자의 권한이 필요 없고 1~2개의 적은 수만 관리자의 권한이 필요할 경우, requireAdministrator 로 설정하지 말고 필요할 때 올리면 된다. => UAC self-elevation 1. How to self-elevate an ap..
[WinForm] 메인 폼의 크기를 고정하거나 조정 윈폼에서 메인 폼의 크기를 고정하거나 조정할 수 있게 설정할 필요가 있다.자꾸 잊어먹어 메모를 한다. FormBorderStyle 에 보면 None FixedSingle : 고정크기 Fixed3D FixedDialog Sizable : 기본값, 크기 조절이 가능하다. 컨트롤의 앵커를 잘 지정해야 크기가 바뀌었을 때 맞게 움직인다. FixedToolWindow SizableToolWindow
[C#] 크로스 스레드 작업이 잘못되었습니다 대상: Visual C# > Windows > Windows Forms 응용 프로그램주제: 비동기 처리키워드: 델리게이트, 이벤트, 멀티 스레드 Windows Forms 응용 프로그램로 UI가 있는 애플리케이션을 만들었다.파일을 읽고 처리를 해야해서 긴 작업을 사용자에게 피드백을 해주어야 해서 아래와 같이 프로그래스를 만들어주었다.(위의 에러 메시지에서 progressBarHashing 컨트롤이 바로 그것!) 파일 처리하는 부분은 스레드로 만들어서 프로그램이 작업을 하는 동안에도 블록 되지 않도록 처리했고, 델리게이트와 이벤트를 작성하여 호출하는 측에서 이벤트 핸들러를 연결했다. 아래는 사용하는 쪽의 이벤트 핸들러 함수이다.void OnProgressEvent(object sender, ProgressE..
[WinForm] 제목표시줄 안보이게 하기 윈폼에서 전체화면을 덮어버릴 프로그램을 만들던중 아무리해도 제목표시줄이 없어지지 않았다.알고보니 FormBorderStyle : None으로 주어야 한다. MaximizeBox : FalseMenu : (없음)Minimizebox : FalseText : 비어있어야 한다고 하는데, 입력되어 있어도 표시가 되지 않을 뿐 (필수 사항은 아니라는 것)ToolBar : (없음)TopMost: True (권장)WindowState : Maximized ----찾다가 보니 참고할만한 링크1. http://www.pcreview.co.uk/forums/remove-title-bar-win-form-t1365531.html (결정적인 힌트)2. [C#] 프로그램 종료 시키기 (이건 그냥 상식이지만..)3. [C#] 윈..