본문 바로가기

프로그래밍언어/WPF

WPF 동영상 재생 아주 간단한 예제입니다. WPF로 동영상을 재생하는 예제입니다. 동영상을 재생하고 일시정지, 정지와 볼륨제어가 가능하게 기능을 추가하였습니다. private void button1_Click(object sender, RoutedEventArgs e) { myvideo.Play(); } private void button2_Click(object sender, RoutedEventArgs e) { myvideo.Pause(); } private void button3_Click(object sender, RoutedEventArgs e) { myvideo.Stop(); } 출처: http://blog.naver.com/PostView.nhn?blogId=rintiantta&logNo=40114991271.. 더보기
컨트롤에 대해서[WPF 컨트롤] 컨트롤이란? 대부분 UI 프레임워크들이 컨트롤과 비슷한 추상화의 개념을 제공하는 것과 달리 WPF는 조금 색다른 접근법을 채택합니다. 즉, 대부분의 컨트롤이 자신들의 외관을 직접적으로 책임지지는 않는다는 것인데 WPF의 컨트롤들은 전부 동작을 구현한 것이며 외관에 대한 책임은 템플릿이 가지고 있습니다. WPF의 LOGIC 컨트롤의 눈에 보이는 부분은 컨트롤 자체가 아닌 템플릿에 의해 제공된다. 컨트롤의 외관 뿐이기 때문에 컨트롤의 외관이 모든 사용자 입력의 직접적 대상이 된다. 컨트롤들은 자신이 지원하는 작업을 표현하기 위해서 커맨드를 사용합니다. Ex) 텍스트 상자는 잘라내기, 복사하기 붙여넣기 등 또한 속성을 통해 자신의 동작이나 외관을 관리, 텍스트상자에서 편집중인 텍스트와 같이 컨트롤과 관련된 정.. 더보기
WPF 컨트롤 템플릿 컨트롤 클래스는 자신의 외관을 변경할 수 있도록 많은 프로퍼티를 가지고 있다. 예를들면 버튼은 백그라운드나 포어그라운드 프로퍼티를 이용해서 색상을 변경 가능하다. 반면에, 템플릿은 원하는 것들을 거의 다 반영해서 비주얼 트리를 완벽하게 변경할 수 있도록 허용해 준다. 물론 템플릿을 사용해도 기능상의 변화는 아무것도 없다. WPF는 템플릿을 사용하여 디자인과 로직을 분리하기 때문에 코딩으로 외관을 설정하기 위한 별도의 프로퍼티들을 많이 노출하지 않는다. 컨트롤 템플릿(ControlTemplate) 클래스의 중요한 부분은 VisualTree 컨텐트 프로퍼티이다. 이 프로퍼티는 원하는 외관을 정의한 엘리먼트의 구조를 포함한다. OK 템플릿의 비주얼 트리는 하나의 셀을 가진 그리드 네부에 Ellipse 엘리먼트.. 더보기
WPF 데이터 바인딩 컨트롤 바인딩 아주 간단한 컨트롤 바인딩 위와 같은 단순 바인딩은 중괄호{} 안에 binding으로 시작하여 이름, 값 쌍의 바인딩 속성을 입력하여 설정한다 ElementName은 바인딩할 컨트롤의 이름을 설정하고 path는 컨트롤의 어떤 속성 데이터를 바인딩할지를 설정하게 된다 키보드 입력에 따라 즉시 바인딩이 일어나는것을 볼 수 있다 데이터 바인딩이란? 객체, xml, 데이터베이스와 같은 저장 장소에서 데이터를 읽어와 사용자 인터페이스를 구성하는 컨트롤에 출력하는 일 데이터와 컨트롤을 묶어주는 일 데이터 바인딩을 하기 위해서는 저장장소에서 값을 읽어올 객체가 필요한데 이를 Data Source라고 한다 데이터 바인딩은 기본적으로 바인딩 대상가 소스사이의 다리 역할을 한다 대상 속성은 종속성 속성이어야.. 더보기
WPF 레이아웃 레이아웃: Panel 요소의 Children 컬렉션에 속한 멤버를 측정 및 정렬한 다음 화면에 그리는 프로세스를 말한다 WPF는 사용자 인터페이스의 레이아웃을 제어하기 위해 강력하고 유연한 여러가지 컨트롤들을 제공한다 그런 컨트롤들을 통칭해 패널(Panel), 또는 컨테이너 컨트롤 이라 할 수 있으며, 패널이란 자신이 소유한 요소들을 정렬하는 일을 수행하는 특수한 목적을 가진 사용자 인터페이스 요소이다 Canvas Canvas는 가장 단순한 패널이다 모눈종이라고 생각하면 된다 기본 height 및 width 속성은 0이지만, 자식 요소의 크기를 자동으로 지정하는 요소의 자식일 때는 예외이다 자식요소는 크기가 조정되지 않으며 지정된 좌표에 배치되기만 한다 Canvas 크기가 달라지더라도 Canvas 안의 .. 더보기
WPF(기본적인 개념,아키텍쳐)[XAML이란 무었인가 Hello WPF! WPF! WPF! WPF의 아키텍쳐 WPF의 아키텍쳐는 여러계층으로 이루어져 있습니다 상위 계층에서 c#코드로 작성된 고수준의 서비스 및 상호작용과 .net개체를 Direct 3D 텍스쳐, 삼각형으로 해석하는 작업을 milcore.dll언매니지드(unmanaged) 저수준 컴포넌트를 사용해 내부에서 이루어 집니다. WPF의 아키텍쳐 1. PresentationFramwork.dll - 최상위 WPF 타입들을 포함합니다. - 윈도우와 패널을 비롯해서, 여러종류의 클래스가 속합니다. - 추가적으로 고수준의 프로그래밍 추상화를 구현한 스타일 클래스도 포함 - 대부분의 클래스가 여기에 포함됨 - 도형개체와 컨트롤도 포함됨 2. PresentationCore.dll - 모든 도형들의 개체들과 .. 더보기
Lan3 WPF Study –step1 Lan3 WPF Study [Sams Teach Yourself WPF in 24 Hours] What WPF IS and Isn't WPF란 무엇인가 WPF는 커다란 그림의 한 부분과 같다. 3가지의 추가적인 라이브러리가 .NET 3.0 의 한 부분으로 존재한다. WCFWindows Communication Foundation은 메세징에 중점을 두고있다. 이 API는 매우 간단하다. WCF는 P2P, 웹서비스의 확장형으로 보완된다.WFWF는 강력한 라이브러리로 응용프로그램을 활성화한다. 어플리케이션 상에서 마크업 언어의 응용선언을 위하고, 개발자가 사용자 지정 워크 플로 작업을 쉽게 할 수 있도록 도와준다.CardSpace카드 스페이스는 데스크톱 응용프로그램, 웹사이트 등의 공통 식별 시스템을 제공해 .. 더보기
Hour 6 Introducing Data Binding 대부분의 응용 프로그램은 사용자에게 데이터를 보여주는 것이 주 목적이며, 가끔 사용자들이 데이터를 수정하도록 하기도 한다 Binding Two Controls Together Two-Way Data Binding Binding to the Collection of Fonts Select a font to view from the list below. You can change the text by typing in the region at the bottom The quick brown fox jumps over the lazy dog Demonstrating Automatic Change Notification public MainWindow() { InitializeComponent(); DataCo.. 더보기
Hour 4: Handling application layout 레이아웃의 기초 WPF 는 일련의 패널(panel)을 제공한다. 패널이란 자신이 소유한 요소들을 정렬하는 일을 수행하는 특수한 목적을 가진 사용자 인터페이스 요소 이다. 각각의 패널들은 직관적이고 이해하기 쉬운 레이아웃 메카니즘을 제공한다. 모든 WPF 요소들과 마찬가지로 레이아웃 객체들은 다양한 방법으로 만들어질 수 있으며 따라서 각각의 패널 타입은 매우 간단하지만 이들을 유연하게 혼합하여 더욱 강력한 레이아웃 시스템을 구현 할 수 있다 Using alignment and margin Margin and padding Margin, present on all FrameworkElements, represents the amount of space around the outside of the eleme.. 더보기
Hour 5 Using Basic Controls 컨트롤은 사용자와의 특정한 상호 동작을 제공하는 사용자 인터페이스 컴포넌트 이다 WPF 컨트롤들은 외관은 변경할 수 있지만 컨트롤의 동작은 기본적으로 변경할 수 없다 TextBlock Instructions select a font to view from the list below you can change the text by typing in the region at the bottom AcceptsReturn="True" -> 여러 줄의 텍스트를 편집 할 수 있다 AcceptsTab="True" -> 탭 기능을 쓸 수 있다 Label _First Name Button 버튼은 사용자가 클릭할 수 있는 컨트롤이다 _Save private void Button_Click(object sender, Rou.. 더보기