2010.07.28 11:19

고객들을 만나다 보면 신규 프로젝트에서 WPF를 사용해야 할찌 혹은 Silverlight를 사용해야 할찌 몰라서 고민하는 분들을 간혹 만나게 됩니다.
 일반적인 가이드는 데스크탑 애플리케이션에는 WPF 웹에는 Silverlight이기도 하지만 Silverlight 3.0부터 제공되는 Out-of-browser 덕분에 이 경계선도 모호해 졌습니다.

 기술적으로 혹은 코드 적으로 WPF와 Silverlight의 차이를 70페이지 분량으로 소상하게 설명하고 있는 자료인 Microsoft WPF-Silverlight Comparison Whitepaper가 있어서 참조하시면 도움이 될 것 같습니다.


최종 업데이트 된지는 조금 되었지만 그래도 참조할 만 하다는 생각에 공유해 드립니다. ^^
원본 사이트는 http://wpfslguidance.codeplex.com/releases/view/30311 에서 보실 수 있습니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
저작자 표시 변경 금지
신고
2010.04.27 16:21
WPF Application Quality Guide 입니다.
WPF와 관련해서 품질을 향상시키는데 도움이 되는 내용들로 잘 정리되어 있습니다.

소프트웨어의 품질을 향상시키는는 가장 쉬우면서도 어려운 방법은 바로 Test입니다. 제대로 된 테스트 시나리오를 가지고 있는 국내 기업도 거의 없을 만큼 Test는 쉬면서도 어렵습니다. WPF나 혹은 Silverlight와 같은 UI 기술의 경우는 더더욱 Test가 쉽지 않은 편입니다.

위의 가이드에서는 WPF에서 각종 Test를 자동화 시키고 프로세스화 시키는데 도움이 될만한 내용이 잘 정리되어 있습니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
저작자 표시 변경 금지
신고
2010.04.27 12:18

New Controls

이번에 새롭게 추가된 컨트롤이라기 보다는 WPF 3.5 SP1 + WPF Toolkit에 포함되었던 내용이 정식으로 포함된 것이라고 할 수 있습니다.

DataGrid
Calendar
DatePicker

Visual State Manager
ControlTemplate안에서 Visual의 상태가 바뀌는 것을 지원하기 위해서 제공되는 VisualStateManage와 이를 지원하는 클래스들이 포함되었습니다. 또 Expression Blend에서 정의된 컨트롤과 외권을 사용할 수 있게 되었다고 합니다.

Touch and Manipulation
터치를 위한 기능들이 개선되었습니다. UIElement와 UIElement3D 그리고 CotentElement 클래스 등에서 모두 터치와 관련된 이벤트에 대한 개선이 있었습니다.

몇가지 그래픽과 애니메이션과 관련된 변화들 입니다.
  • Layout Rounding

    When an object edge falls in the middle of a pixel device, the DPI-independent graphics system can create rendering artifacts, such as blurry or semi-transparent edges. Previous versions of WPF included pixel snapping to help handle this case. Silverlight 2 introduced layout rounding, which is another way to move elements so that edges fall on whole pixel boundaries. WPF now supports layout rounding with the UseLayoutRounding attached property on FrameworkElement.

  • Cached Composition

    By using the new BitmapCache and BitmapCacheBrush classes, you can cache a complex part of the visual tree as a bitmap and greatly improve rendering time. The bitmap remains responsive to user input, such as mouse clicks, and you can paint it onto other elements just like any brush.

  • Pixel Shader 3 Support

    WPF 4 builds on top of the ShaderEffect support introduced in WPF 3.5 SP1 by allowing applications to now write effects by using Pixel Shader (PS) version 3.0. The PS 3.0 shader model is more sophisticated than PS 2.0, which allows for even more effects on supported hardware.

  • Easing Functions

    You can enhance animations with easing functions, which give you additional control over the behavior of animations. For example, you can apply an ElasticEase to an animation to give the animation a springy behavior. For more information, see the easing types in the System.Windows.Media.Animation namespace.

Text와 관련한 몇 가지 변화 사항입니다.
  • New Text Rendering Stack

    The WPF text rendering stack has been completely replaced. This change brings improvements to text rendering configurability, clarity, and support for international languages. The new text stack now supports explicitly selecting aliased, grayscale, or ClearType rendering modes. The text stack now supports display-optimized character layout, to produce text with sharpness comparable to Win32/GDI text. The new text stack allows optimizing text hinting and snapping for either animated or static text. The new text stack also supports fonts with embedded bitmaps to be substituted for smaller font sizes, allowing many East Asian fonts to render with sharpness comparable to Win32/GDI text.

  • Selection and Caret Customization

    You can now specify the brush that paints the selection and caret for input and reading controls, such as TextBoxRichTextBox, and FlowDocumentReader. There are two new properties on TextBoxBase:

    • SelectionBrush allows you to create a brush for highlighting selected text.

    • CaretBrush allows you to change the brush that paints the cursor.

Binding과 관련해서는 많은 변화가 있었습니다.
Various changes and enhancements have been made related to binding.
XAML Browser Applications 다시 말해서 XBAP도 개선이 되었다고는 하는데 제 개인적으로는 XBAP의 실용성에 대해서는 의구심이 들기는 합니다.

Two features have been added to XAML browser applications (XBAPs).

  • HTML-XBAP Script Interop

    You can now communicate with the Web page containing the XBAP when the application is hosted in a HTML frame. The XBAP can get deep access to the HTML DOM and can handle DOM events. For more information see BrowserInteropHelper.HostScript.

  • Full-Trust XBAP Deployment

    If your XBAP requires full trust, the user will now automatically receive the standard ClickOnce elevation prompt when they install the application from the intranet or one of their browser's trusted sites.

For more information on both these features, see WPF XAML Browser Applications Overview.

Windows 7과 관련한 변화입니다. 이 역시도 새롭게 추가된 것이라기 보다는 흩어져 있던 API들을 잘 묶은 정도의 변화라고 볼 수 있습니다.

The Windows 7 taskbar provides enhanced functionality that enables you to use the taskbar button to communicate status to a user and expose common tasks. New types in the System.Windows.Shell namespace provide managed wrappers for functionality in the Windows 7 taskbar and manages the data passed to the Windows shell. For example, the JumpList type allows you to work with Jump Lists and the TaskbarItemInfo type allows you to work with taskbar thumbnails.

WPF dialog boxes on Windows 7 and Windows Vista now support the look and feel of the Windows 7 and Windows Vista style, which includes custom places. For more information, see the FileDialogCustomPlace class.

WPF가 개선되었긴 하지만 4.0버전에서 새롭게 무엇인가 출현한 것은 없다고 보셔도 무방할 만큼 무난한 변화가 있었습니다.

자세한 내용은 http://msdn.microsoft.com/library/bb613588.aspx 를 참조해 보시기 바랍니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)

저작자 표시 변경 금지
신고
2010.04.27 08:02
http://msdn.microsoft.com/library/ee649090(v=VS.100).aspx

WPF 기반으로 Touch Application을 제작할 수 있는 방법을 소개하고 있습니다.  총 6단계만 따라하면 되는데 기본적으로는 Windows 7 기반에 Visual Studio 2010으로 작업하는 것을 전재로 하고 있습니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
저작자 표시 변경 금지
신고
2010.03.10 10:31
WPF에서 다양한 효과를 줄 수 있는 두 가지 프로젝트가 있어서 소개해 드립니다. CODEPLEX에서 공개되어 있는 아래 두 개의 프로젝트는 Pixel Effiect를 줄 수 있는 Effects Library와 전환 효과를 줄 수 있는 Transitionals 입니다. 
  사진이나 동영상 혹은 씬의 전환에 사용하면 괜찮을 것 같습니다.

http://wpffx.codeplex.com/ 

http://www.codeplex.com/transitionals 

저작자 표시 변경 금지
신고
2009.05.14 08:03

http://www.componentsource.com/newreleases/wpf/index-ko.html

component source 사이트는 개발에 필요한 컴퍼넌트를 한 자리에 모아서 보여주고 판매하는 사이트 입니다.
찾아보니 WPF와 관련된 컴퍼넌트도 엄청나게 많이 늘었습니다.

Silverlight도 찾아볼 수 있는 유용한 사이트 입니다.
신고
2008.12.04 09:26

Chart control은 꼭 한번씩 아쉬워 지는 컨트롤 중에 하나입니다.  그래서인지 Chart FX와 같은 업체는 Chart 하나로 비지니스를 잘하고 있습니다. 물론 Chart FX만큼 완성도가 있지는 못하지만 그래도 아쉬울 때 사용할 수 있는 3D Chart가 있습니다.

interface_anim

위의 Chart는 Code project에서 찾을 수 있습니다. http://www.codeproject.com/KB/WPF/Wpf3DGraphingLibrary.aspx

A WPF Powered 3D Graphing library라는 제목으로 소개하고 있습니다. 실제로 Chart를 사용하는 방법은 간단합니다.

BarGraph bg = new BarGraph(dict, Colors.CadetBlue, Colors.BurlyWood, 
  new TimeSpan(0, 0, 0, 0, 500));
물론 위의 그림에서 보는 것과 같은 약간의 user interaction도 지원하고 event handler를 통해서 이벤트를 다룰 수 있습니다. 
BarGraph bg = new BarGraph(...);
bg.MouseOver += new GraphActionDelegate(BarGraphMouseOver);
...

void BarGraphMouseOver(BaseGraph sender, object key, object value)
{
   // Respond to the mouse over event.
}
이외에도 툴팁과 같은 것도 함께 지원되고 있습니다. 몇 가지를 테스트 해보면 본격적인 사용을 하기에는 아직 많이 부족해 보이지만 내부 용도의 간단한 모니터링 화면같은데서는 부담없이 사용할 수 있을 것 같습니다. 
신고
2008.11.12 09:00

김영욱 iwinkey@hotmail.com: 국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 WPF 및 Silverlight와 같은 UX 기술에 전념하고 있다. 현재 한국 마이크로소프트에서 개발 전도사로 활발히 활동하고 있다.

라디오가 제일 처음 출현했을 때 세상은 깜짝 놀라면서 세상이 라디오를 통해서 바뀔 것이라고 생각했다. 그리고 TV가 나왔을 때 세상은 TV로 인해서 크게 바뀔 것이라고 주장하기 시작했고 이런 현상은 컴퓨터의 등장과 인터넷의 등장에도 불구하고 계속해서 사람들은 그것들이 세상을 바꿀 것이라고 주장했지만 지금 우리 주위를 돌아보면 라디오, TV, 컴퓨터, 그리고 인터넷까지 어느것 하나 사라지거나 하지 않고 각각 다 자기 영역을 지켜면서 잘 살아있는 것을 볼 수 있다.

진화와 공존을 거듭하는 클라이언트 기술

옛날 ‘별이 빛나는 밤에’와 같은 한 밤중의 음악 프로그램에 청취자가 참여하기 위한 유일한 방법은 우편엽서를 최대한 예쁘게 꾸며서 보내는 방법이었다. 하지만 요즈음은 인터넷 게시판과 핸드폰의 문자 메시지를 통해서 참여할 수 있고 더 나아가서 인터넷과 연계해서 보이는 라디오까지 출현하고 있는 것을 보면 이전의 라디오와는 많이 다르다는 생각을 누구나 할 수 있게 된다.

소프트웨어도 이전의 환경과 더불어 많은 변화가 있었지만 이전의 기술들과 현재의 기술이 공존하고 있고 공존하기만 하는 것이 아니라 서로 서로 영향을 끼치면서 단단하거나 느슨한 기술의 고리를 가지고 연결되어 있다. 이전의 환경은 단순히 비지니스 모델을 파일 시스템으로 표현했다. 이 시기에는 파일 시스템이 곧 비지니스 모델의 추상화 였다. 물론 이 시기의 비지니스 모델은 단순하기도 했지만 사람들은 IT를 적극적인 비지니스의 도구로 생각하지는 못했고 단순히 자료의 축척이라는 개념에서 크게 벗어나지 못하고 있었기 때문에 이런 모델이 잘 소화해 낼 수 있었다. 하지만 비지니스 모델은 정적인 모델에서 가변적이고 변화의 시기가 짧은 모델로 변화하고 있었고 이 때문에 정적인 데이터 구조를 벗어나지 못하고 있는 파일 시스템의 모델로는 금방 한계에 다다를 수 밖에 없었다.

이때 문제의 해결책은 비지니스 모델과 데이터의 분리였고 이와 더불어 데이터베이스가 출현했다. 좀더 개념이 발전하면서 비지니스 모델을 잘 표현하기 위해서 N-Tier와 같은 아키텍쳐가 잘 자리잡기 시작했고 위치의 제약을 벗어나기 위해서 웹이 도입되기 시작했다. 크게 생각해보면 데이터베이스와 N-Tier 구조가 정의되어 있는(혹은 유사한 형태의) 구조를 서비스라고 정의하고 이 서비스를 웹으로 노출 시키기 위해서 웹 서버와 파이프 라인으로 연결한 구조가 현재 가장 전형적인 아키텍쳐 구조라고 이야기 할 수 있다. 물론 그렇지 않는 단순한 서비스도 다수 존재하겠지만 여기서는 일반적인 엔터프라이즈 환경을 기준으로 생각해 볼 때 그렇게 정의할 수 있겠다.

서비스가 웹이든 혹은 로컬 네트워을 통하든 어떠한 방법으로 노출이 될 때 이 서버스를 사용자들이 이용할 수 있게 주는 것이 바로 클라이언트이다. 클라이언트를 설명하기 위해서 서비스 구조를 먼저 설명한 것도 서비스에 따라서 클라이언트가 달라지기 때문이다.

clip_image002

<그림1> 현재 아키텍쳐의 전형

클라이언트 역시 터미 터미널의 문자 위주의 클라이언트 환경에서 부터 DOS기반을 거쳐서 매킨토시나 원도우즈 환경으로 넘어오면서 GUI로 넘어오게 되었다. GUI 환경에서는 주로 델파이, 파워빌더, 비주얼 베이직과 같은 걸출한 개발툴 들이 태동하던 시기였다. 사실 필자도 이 시기에 IT에 입문해서 비주얼 베이직 3.0 혹은 터보C이런 언어로 컴퓨터의 기초를 배웠다. 그리고 얼마 지나지 않아서 웹이라는 거센 물결이 흘러왔고 웹이 모든 클라이언트의 표준이 되었다. 모든 것이 웹 브라우저를 통해서 다 해결될 것만 같았고 모든 시스템을 웹 브라우저 기반으로 마이그레이션 하지 않으면 안될 것 같은 생각들을 했다.

하지만 웹 브라우저를 이용해서 접근할 수 있는 서비스나 시스템이 폭팔적으로 늘어나기는 했지만 이는 시장의 팽창을 불러왔을 뿐 기존의 클라이언트 기술의 종말을 의미한 것은 아니다. 오히려 기존의 클라이언트는 웹 프로토콜인 HTTP를 사용해서 네트웍을 할 수 있도록 발전했을 뿐 아니라 웹 환경 보다 더 나은 인터페이스를 제공하기 시작했다. 웹 브라우저 기반의 서비스는 접근성 면에서는 향상되었지만 기본적으로 보안 및 대량의 데이터를 다루는 클라이언트로는 기본적으로 적합하지 않았으며 또 인터페이스만 하더라도 기존의 클라이언트 기술에 비해서 많이 불편한 것도 분명한 사실이었다.

웹 브라우저의 접근성과 더불어 응용프로그램으로 구성된 기존의 클라이언트 기술의 편리함을 동시에 제공하려고 했던 시도가 바로 ActiveX 기술이다. ActiveX기술은 웹 브라우저를 통해서 다운로드 받아서 웹 브라우저 안에서 실행되는 구조로 보이지만 사실은 웹 브라우저와는 별도로 클라이언트에서 실행되는 하나의 응용프로그램과 같은 형태로 실행되기 때문에 인터페이스 및 대용량의 데이터 그리고 복잡한 알고리즘의 구현등에 있어서 꼭 필요한 기술이 되었다.

한 동안 많이 나왔던 솔류션이 바로 X internet 솔류션이다. 기존의 표준적인 웹의 단점을 해결하기 위해서 주로 나온 솔류션들이 바로 X internet 솔류션인데 대부분의 경우 그 속을 열어보면 ActiveX로 구성된 클라이언트를 제공하고 서버쪽에 미들웨어를 구성한 경우가 대부분 이었다.

RIA기술의 출현

웹 브라우저와 클라이언트 응용 프로그램으로 양분된 시장의 틈세에 웹에서 실행되는 별도의 플랫폼 기술이 나타나게 되었데 이 기술을 RIA라고 부르는 것이 일반화 되었다. RIA는 Rich Internet Application혹은 Rich Interactive Application의 약자로 부르는데 둘 다 Rich라는 단어가 중요하다. Rich의 의미는 기존에 HTML기반의 표준적인 웹에 비해서는 풍부하고 멋진 인터페이스를 제공한다는 의미에서 사용하고 있는 단어이다.

RIA와 관련해서 시장에 많은 영향을 끼친 것은 Macromedia사의 Flash기반의 기술이었다. Flash는 지금도 많은 부분에서 사용되고 있으며 Flash와 Flex, 그리고 Air 기술로 계속해서 수평적으로 확장하고 있다. 최근에는 이 분야에 MS에서도 실버라이트라는 RIA기술을 제공하고 있으며 실버라이트 2가 정식으로 런칭하면서 국내 대기업들과 언론사 그리고 포탈에서 채용되는등 가속도가 붙고 있다.

clip_image004

<그림2> 클라이언트 아키텍쳐

어찌되었던 현재는 <그림2>에서 보는 바와 같이 클라이언트 아키텍쳐를 3개층으로 나누어서 분류하게 되었다. 일반적인 웹 인터페이스와 RIA 그리고 클라이언트 응용 프로그램이 바로 그것이다. 이전에는 기술이 사용자들을 시장에서 리드해 나갔지만 요즘은 확연히 사용자들이 기술을 리드해 나가는 시장으로 바뀌었다. 클라이언트 아키텍쳐의 모양이 3개층으로 분류되어 있기는 하지만 이는 분류를 위한 구분일 뿐 사용자들은 각 층을 넘나드는 요구사항을 내놓는게 일반화 되었다. 따라서 이를 수용하기 위한 기술적인 유연함이 필요하다.

요구사항에 맞는 클라이언트 기술의 선택이 관건

국내에서 다수의 프로젝트를 수행하다 보면 잘못된 분석에 의해서 모든 요구사항을 웹 브라우저 기반의 클라이언트 기술로 해결하려는 경우를 다수 보게 되는데 이것은 상당히 위험한 생각이다. 최근에는 Flash기반이나 실버라이트 기반의 RIA기술로 우선 선택하려는 경우도 종종 있는데 이 역시 위험한 발상이라고 볼 수 있다. 그 이유는 웹이라는 환경은 기본적으로 텍스트 기반의 전송을 통해서 상호 운영성을 극대화하는데 그 목적이 있는 것이지 모든 요구사항을 고려해서 나온 아키텍처가 아니기 때문이다. 또 RIA기술의 경우 웹 브라우저 안에서 메모리를 할당 받고 프로세스를 할당 받기 때문에 일반적인 클라이언트 응용 프로그램에 비해서는 성능 및 사용할 수 있는 데이터 양에 있어서 다수의 제약이 뒤따를 수 밖에 없다. 또한 사용자들의 증가하는 요구사항을 수용하기 위해서 클라이언트의 자원에 접근에도 한계가 있다는 점은 상당히 치명적인 부분이다. 국내 모 대기업에서 내부 시스템을 Flex기반으로 구축했다가 최근에 닷넷 기반의 클라이언트 응용 프로그램으로 되돌리는 사례가 있었는데 이 경우도 역시 성능 및 기존에 개발해 두었던 소프트웨어와의 호환성 문제 및 오피스 파일과의 연계와 같은 요구사항들이 새롭게 발생했기 때문이다.

따라서 시작은 RIA기술로 했지만 언제 웹 브라우저로 혹은 클라이언트 응용 프로그램으로 확장해야 할찌 모르는 점을 항상 염두해 두고 선택해야 한다. 아주 엉뚱하게 모바일 플랫폼으로 확장해야 하는 경우가 발생할 지도 모른다면 어떻게 할 것인가 하는 고민도 하게 될 것이다. 이런 경우 어떻게 해야 할까?

클라이언트를 다른 계층의 클라이언트 기술로 이동 하더라도 최소한의 노력과 비용으로 확장이 가능한 아키텍쳐와 기술을 가져가는 것이 주요 포인트가 된다.

clip_image006

<그림3> MS의 클라이언트 기술

MS의 경우 RIA기술인 실버라이트 그리고 클라이언트 응용 프로그램 기술인 WPF. 그리고 곧 출시될 실버라이트 모바일이 같은 기반의 기술로 구성되어 있다. 따라서 필요에 따라 다른 계층의 클라이언트로 전이하는데 있어서 최소한의 노력으로 구현이 가능하며 모든 기술인 닷넷 기반의 아키텍쳐로 통합하는게 가능하다.

클라이언트 기술은 앞으로도 계속 발전하고 더 세밀하고 치밀하게 분류되고 발전한 것이다. 아이폰만 보더라도 하드웨어 기술보다는 인터페이스를 담당하고 있는 소프트웨어로 성공하고 있으며 이는 자동차나 다른 산업 전반에도 쉽게 발견할 수 있는 사례가 될 것이다.

클라이언트 기술을 잘 선택하고 사용자에게 어필할 수 있는 적합한 인터페이스는 앞으로 점점더 많은 고민과 해결책이 제시될 것이다. ---(*)---

신고
2008.11.06 15:07

저는 올해 상반기에 국책 프로젝트인 디지털 교과서를 SKC&C에서 PL의 Role을 가지고 작업을 진행 했었습니다. 프로젝트를 하면서 가장 이상하게 생각했던 점 중에 하나가 바로 WPF에는 DataTimePicker, Calendar 같은 기본 컨트롤이 없다는 점이었습니다. 그리고 DataGrid도 마찬가지 입니다.

아무튼 일반적인 닷넷 기반의 UI에서는 너무 당연하게 있는 것이라서 없다는 게 오히려 신기할 지경이었습니다. 이번에 나온 WPF Toolkit으로 이런 점들이 모두 해소가 될 예정입니다. WPF Toolkit 안에서 아래와 같은 것들이 제공됩니다.

  • V1 of the WPF DataGrid
  • V1 of the DataPicker/Calendar
  • Preview of VisualStateManager(VSM)

WPF Toolkit의 공식 링크는 http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598 입니다.
image 
사이트에서 바이너리 파일이나 혹은 소스 코드를 모두 다운로드 받을 수 있습니다. 관심있는 분들은 소소코드를 받아서 하나씩 열어보는 재미가 솔솔할 것 같습니다. 바이너리 파일을 다운로드 받아서 열어보면

image 이와 같은 설치 파일이 하나 나옵니다. 실행을 시켜 보면

image

일반적인 설치 화면이 하나 나타 납니다. 설치하는 방법은 거의 비슷하게 라이센스에 동의를 해주고 열심히 Next를 누르다 보면 설치가 성공적으로 끝나게 됩니다.

image 설치를 끝내고 나서 Visual Studio를 실행시켜 보면 그 동안 아쉬웠던 Calendar, DataGrid, DatePicker등이 추가 되어 있는 것을 볼 수 있습니다.
여기서 중요한 포인트가 하나 있습니다. WPFToolKit은 기본적으로 .NET Framework 3.5 SP1 상에서 실행되는 것을 전재로 하고 있습니다. 따라서 개발자의 PC환경과 사용자의 PC환경에 .NET Framework 3.5 sp1이 설치되어 있어서 실행이 가능합니다. 따라서 WPF Toolkit을 사용하기 위해서는

.NET Framework 3.5 sp1 http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
Visual Studio 2008 sp1 http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=ko

이렇게 두 가지 요소가 우선 설치되어 있어야 합니다.
사이트에서는 새 프로젝트에서 사용하기 위해서는 WPFToolkit.dll을 참조로 링크시키고 하는 몇 가지 작업을 수동으로 해달라는 이야기를 쓰고 있지만 실제로는 그렇게 하지 않고도 툴 바에서 해당 컨트로를 추가시키는 것만으로도 필요한 작업이 다 반영되는 것을 볼 수 있습니다.

image 
실제로 새 프로젝트에 컨트롤들을 추가해서 실행을 시켜보면 잘 실행되는 것을 볼 수 있습니다.

신고
2008.10.06 12:48

많은 분들이 WPF 작업을 하시다가 깜짝 놀라는 경우가 바로 당연히 있으리라고 생각하던 DateTime Picker와 같은 컨트롤이 없다는 사실을 발견했을 때 입니다. 저 역시도 DateTime Picker가 없어서 고민했던 적이 있습니다. 물론 .NET 시절부터 많은 컨트롤들을 제공했던 업체들이 발빠르게 서드파트 제품으로 제공하고 있어서 지금은 크게 문제가 되지 않습니다.

아무튼 바로 사용할 수 있는 "공짜" 컨트롤을 소개해 드릴려고 합니다. Mix07에서 소개된 자료있는데 많은 사람들이 알지 못하는 것 같습니다.

아래 주소로 접근해 보시면 Kevin's Bag-O-Tricks - MIX07 Edition Download Agreement라는 내용이 있습니다.
http://wpf.netfx3.com/files/folders/10297/download.aspx

소스를 열어보면 3.0버전인지는 몰라도 이전 버전으로 작성된 소스라고 업그레이드 여부를 물어 옵니다. Visual Studio 2008에서 .NET 2.0 이상의 소스를 .NET3.5 기반으로 자동 업그레이드 하는 경우에는 문제없이 대부분 잘 업그레이드가 됩니다.
포함된 컨트롤 데모를 보시면 아래와 같이 DateTime Picker가 잘 구현된 것을 볼 수 있습니다. 이외에도 재미있는 컨트롤들이 많이 있으니깐 참조하시면 좋을 것 같습니다.
신고


티스토리 툴바