본문 바로가기

C#

WPF UI 테마 엔진 Codinator 베타가 출시되었습니다. 안녕하세요? witstudio의 김대욱입니다. 그동안 동영상등으로만 몇번 소개드린바 있던 WPF UI테마 엔진인 Codinator(코디네이터)가 드디어 베타서비스를 시작 하였습니다. UI개발 & 디자인을 효율적으로 진행 할 수 있는 방법에 대해 많은 시간을 고민한 끝에 제작된 Codinator는 UI테마를 통해 간단한 조작만으로 다양한 Look & Feel를 선택하고 원하는 형태로 수정이 가능한 제품입니다. 현재 베타 서비스는 아래와 같이 진행되고 있으니 많은 관심 부탁드리겠습니다. [Codinator Closed Beta 서비스 안내] 기간 : 2010년 12월 4일 ~ 2011년 1월 30일(예정) 대상 : WPF 기술을 사용하는 개발자 & 디자이너 사용환경 : Visual Studio 2010 또는.. 더보기
Create WPF Gradient Editor Introduction 이번시간에는 WPF에서 사용할 수 있는 Gradient Editor를 구현하는 방법에 대해 소개합니다. 아래 동영상은 이번시간에 구현하게 될 GradientEditor의 데모 동영상으로 Expression Blend와 유사한 형식으로 Gradient를 편집할 수 있습니다. Create Gradient Editor Control 먼저 Linear Gradient를 표현하기 위해서 아래와 같이 기본적인 속성들을 선언합니다. 각요소를 표현하기 위해 DrawingVisual을 이용 할 예정이기 때문에 FrameworkElement를 상속받아 VisualCollection를 선언한 뒤 VisualChildrenCount와 GetVisualChild를 재정의 합니다. public class .. 더보기
WPF ReverseBinding(RadioButton DataBinding) Introduction WPF를 이용해 MVVM패턴으로 개발할때, ViewModel에서 View에 있는 객체에 Binding을 해야 할경우, ViewModel에서 View에 있는 객체를 직접 Access해야 하므로, View와 ViewModel의 독립성이 떨어지게 됩니다. 이번시간에는 이러한 상황에서 MarkupExtension을 이용해 View에서 ViewModel의 독립성을 유지한체 ViewModel에서 View를 Binding할 수 있도록 하는 ReverseBinding을 구현 하는 방법에 대해 소개합니다. Create DemoView(Default Data Binding) ReverseBinding를 구현하기에 앞서 ReverseBinding을 테스트 하기 위한 상황을 만들기 위해 위와 같이 두개.. 더보기
Get Type From COM Object(System.__ComObject) Introduction .Net Framework를 이용해 COM객체를 사용하다보면, Object 형식으로 객체가 리턴되는 경우가 있는데 이 객체를 활용하기 위해서는 적절한 Type으로 캐스팅이 필요한 상황이 됩니다. 다행히 Object객체가 어떤 Type의 객체인지 알고 있는 상황이라면 간단하게 캐스팅문법을 이용해 캐스팅 해서 사용할 수 있지만, Type을 모르고 있다면 문제가 발생합니다. 일반적인 .Net Framework환경에서 였다면 간단히 GetType메서드를 통해 해당 객체의 Type을 확인 할 수 있지만, COM 객체의 경우 GetType메서드를 호출하게 되면 System.__ComObject 를 리턴하기 때문에 확인 할 수가 없습니다. Microsoft KB문서(http://support... 더보기
Check Windows User Account Role Introduction Windows용 소프트웨어를 개발하다보면 사용자 로그를 기록하거나, 특별한 권한이 필요한 기능을 수행하려고 할때, 현재 사용자의 권한을 알아야 하는 상황이 있습니다. 이번시간에 소개할 내용은 .Net Framework를 이용해 사용자 권한의 가져오는 방법에 대해 설명합니다. using System.Security.Principal; public static List GetCurrentUserRole() { List Results = new List(); WindowsIdentity WindowsIdentity = WindowsIdentity.GetCurrent(); WindowsPrincipal WindowsPrincipal = new WindowsPrincipal(WindowsI.. 더보기