본문 바로가기

.NET/WPF

WPF 기초 데이터 바인딩 데이터 바인딩 조만간, 특히 상업용 프로그램을 작성하고 있다면, 화면 위젯을 기존 데이터와 연동시켜야 하는 경우가 있을것이다 이러한 데이터들은 매우 다양한 형태로 존재한다. 인터넷상의 공개된 데이터, 이메일, XML파일, 운영체제, 데이터베이스 등에서 가져올 수도 있다, 좀 범위를 좁혀 보면, 가장 자주 사용하는 것은 관계형 데이터베이스일 것이고, MS쪽 프로그램을 다룬다면 아마도 SQL Server를 주로 사용할 것이다. 컨트롤을 어떤 데이터 타입이든 간에 데이터 소스와 바인딩시키는 기능은 효율적이고 좋은 프로그램을 만드는 데 중요한 요소이다. 만약, WPF가 ASP.NET이나 윈폼을 다룰 때처럼 상당한 수준의 데이터 바인딩 기능을 가지지 못했다면 단순히 인상적인 장난감 정도에 지나지 않았을 것이다 W.. 더보기
WPF 기초 복합 컨트롤 복합 컨트롤 WPF의 컨트롤 , 드로잉, 리소스 등에 익숙하다면, 이와 같은 기능들을 조합시켜 복합적인 사용자 인터페이스를 만들기 위해 정교한 애니메이션을 만드는데 사용할 수 있다. 이러한 기능들은 다른 포맷에서도 재사용할 수 있는 매우 강력한 기능을 제공한다. 이번 예제는 이런 생각을 정리하는 차원에서, 백악관의 웹사이트에서 가져온 역대 미국 대통령의 사진을 슬라이드 처럼 보여주는 인터페이스를 만들 것이다. 물론, 재사용성의 강력함을 보여주기 위해서 이 코드를 다음 장에서도 재사용할 것이다. United States Presidents 이 코드는 새로운 것이 전혀 없다. 그렇지만 , 코드에 사용된 엘리먼트들을 새로운 방식으로 사용햇다. 이예제를 따라 해 보려면 일단 리소스 딕셔너리에 원하는 색상의 Gr.. 더보기
WPF 기초 의존 프로퍼티와 첨부 프로퍼티 애니메이션, 동시 실행 애니메이션 WPF에서 애니메이션을 사용하려면, 대상 오브젝트는 반드시 필요한 세 가지 조건이 있다 1. 의존 프로퍼티(dependency property)를 가지고 있어야한다 2. DependencyObject 에서 상속받고, IAnimatable 인터페이스를 구현해야한다(Button, Panel, Shape 같은 컨트롤들은 모두 이러한 처리 과정을 거쳤기 때문에 , 애니메이션을 적용하는 데 거의 문제가 없다) 3. 호환 가능한 애니메이션 타입을 이용할 수 있어야 한다(그렇지 않으면 스스로 만들 수 있다) 보통 애니메이션을 시작하는 첫 번째 단계는 애니메이션을 적용한 프로퍼티를 고르는것이다. 각도는 Angle 프로퍼티로 설정하는데. 이프로퍼티의 데이터 타입이 Double 이기때문에 DoubleAnimation을 이.. 더보기
WPF 기초 엘리먼트 간의 포함 관계 Window.Resource 형태변형 얼리먼트 간의 포함 관계 Ready, Fire, Aim! 리소스(Window.Resource) Little Green Men 리소스는 XAML에서 사용할 오브젝트를 정의하고 공유할 수 있게 해준다. 리소스를 공유할 수 있는 범위는 일반적으로 Page 혹은 Window 수준에서 사용하지만, 전체 프로그램이나 심지어는 전체 시스템 차원에서 공유할 수 있다. XMAL의 Resources 섹션은 가끔 "리소스 딕셔너리(resource dictionary)"로서 참조된다 이 리소스는 TextBlock 의 Foreground 프로퍼티에 리소스 자체를 값으로 넘겨주면 적용된다. 이때 StaticResourced 키워드를 사용하면 이 리소스는 컴파일 타임에 설정되고 런타임 시에는 수정할 수 없다. 반대로, Dynami.. 더보기
WPF 기초 Resource, Linear Gradient , Style 전체 소스 Press Me! Resource 처음 도입부는 Windows 엘리먼트를 선언하고 네임스페이스를 추가한 후, Resources 섹션을 선언한다. Resouces 섹션에 선언한 스타일이나 엘리먼트들은 프로그램을 구성하는 UI 어느곳에서나 공유할 수 있다. Linear Gradient 리니어 그레이디언트는 선을 따러서 색상을 입힌다. 색상은 한 지점에서 다른 지점까지 선을 따라서 점진적으로 변한다 (새로운 색상을 적용하기 위해 GradientStop 오브젝트를 사용하면 점진적으로 변하던 값들이 변경된다) 리니어 그레인언트는 꼭 그렇지는 않지만 보통 대각선으로 적용된다. 이때 , 사용되는 가상의 선은 시작점과 종료점에 따라서 결정되며 지정할 경우 좌측 상단의 시작점에서 우측 하단의 종료점까지 (x,.. 더보기
WPF 기초 <Viewbox><Canvas> <Path> 모든 쉐이프 객체들 (Ellipse, Line , Path, Polygon, Poliline, Rectangle) 은 공통적인 프로퍼티들을 공유한다, 다음은 가장일반적인적으로 사용하는 것이다 Stroke - 쉐이프의 윤관선을 어떻게 그릴지 지정한다. StrokeThickness - 그릴 윤관선의 두께를 지정한다. Fill - 쉐이프 내부를 어떻게 채울지 지정한다 이 모든 프로퍼티들의 좌표와 꼭짓점은 장치 독립적인 픽셀(device-independent pixcel)을 단위로 사용한다 Canvas는 자식 엘리먼트들이 절대 좌표(absolute positioning)을 사용할 수 있도록 해준다 Viewbox 때문에 창의 크기를 변경하면 자동으로 크기가 변경된다 - 출처 Programming .Net 3.5 .. 더보기
WPF 기초 StackPanel 사용과 <FlowDocumentReader> <FlowDocument> <Paragraph> <Paragraph.FontFamily> <Paragraph.FontSize> <Bold> <LineBreak /> © 2007 O'Reilly Media, Inc. All trademarks and regustered trademarks appearing on oreilly.com are the property of their respective owners. Verdana 18 Getting Started with .NET 3. Verdana 18 By Jesse Liberty and Alex Horovitz September 2006 Pages : 56 Learn how to create more dynamic user experiences and build secure web servies using Windows Communication Foundation(WCF) and Windows Presentation.. 더보기
WPF 기초 DockPanel 선언 순서가 중요하다 I am the left... I am the Right I am the top... I am the bottom I am the Fill(of the center) I am the top... I am the bottom I am the left... I am the Right I am the Fill(of the center) I am the top... I am the bottom I am the left... I am the Fill(of the center) I am the Right - 출처 Programming .Net 3.5 by Jesse Liberty and Alex Horovitz. (소수 수정) 더보기