본문 바로가기

Silverlight

(33)
Make a Deepzoom Solution Deepzoom 에 관한 기초 지식을 기반으로 간략한 Test 솔루션을 만들어 보겠습니다. Test 솔루션에서 구현 될 기능 리스트 입니다. 1. Mouse Left Button Click 시 Deepzoom Image 확대. 2. Shift + Mouse Left Button Click 시 Deepzoom Image 축소. 3. MouseWheelHelper를 사용한 Wheel 지원 4. Pan 기능(Mouse Drag를 통한 Deepzoom Image 이동). Deepzoom Test Solution 을 하나 생성합니다.(Web Project 도 함께 추가합니다.) Deepzoom Composer 를 이용한 Deepzoom Image 피라미드를 ClientBin 폴더에 복사합니다. Deepzoom C..
Behavior 만들기 Silverlight 3 에서는 Behavior 를 지원합니다. Behavior란 사전적인 해석에서 알 수 있듯이, 동작을 뜻합니다. 이 동작이란 것은, Dependency Object의 동작이 될 수도 있고, FrameworkElement의 Event에 대한 Trigger가 될 수 있습니다. Behavior를 Silverlight 3 에서 구현하는 방법 입니다. 1. Dependency object 의 Behavior 정의 우선, Dependency object의 Behavior를 정의 하기 위해서는, Program Files > Microsoft Expression > Bledn 3 Preview > Libraries > Silverlight > Microsoft.Expression.Interativ..
Element to Element Binding Silverlight 3 에서는 UIElement에서 다른 UIElment의 Property 값을 Binding 할 수 있는 기능이 추가 됐습니다. (WPF에서는 원래 사용되고 있었다고 합니다.) Element Binding Element Binding은 다음과 같은 구문으로 사용하실 수 있습니다. DependencyProperty = "{Binding Value, ElementName=UIElement명}" Slider의 Value 값을 DependencyProperty에 Binding 하게 됩니다. Silverlight 2에서는 Element의 Property 값을 다른 Element에서 참조하여 사용하고자 할 때, 비하인드 코드에서 Property값을 참조할 수 있도록 처리를 해 줘야 했습니다. 사..
Data Binding 데이터 바인팅은 User Interface(UI)와 Data Source를 연결할 수 있는 방법입니다. 런타임에서 Binding UI에 Data source를 연결하기 위해서는 Binding 클래스의 인스턴스를 생성해야 합니다. Binding 클래스의 인스턴스를 생성하고, Data source, Binding Mode를 설정 한 뒤, UIElement에 (정확히는 FrameworkElement) SetBinding 함수를 사용하여 연결 될 Property와 Binding 인스턴스를 넘겨줍니다. 이때, FrameworkElement 내 연결 될 Property는 반드시 DependancyProperty여야 합니다. DateTime.Now; Binding..
ControlTemplate 정의하기 Control의 Style을 바꾸기 위해선 Style을 Resource로 정의하고 공유하면 되지만, Style을 바꾸는 것 이상으로 Control의 모양을 사용자가 원하는 모양으로 바꾸고 싶을 때, ControlTemplate을 사용합니다. 실버라이트의 모든 Control 은 Template속성에 ControlTemplate을 적용할 수 있습니다. ControlTemplate 정의 Button control을 추가하면,
Resource에서 Style을 범용적으로 사용 Element 의 Style을 지정하는 방법을 알아 봤지만, 모든 Element에 Style을 지정 해 Element의 형태를 지정하는 것은 비효율적이며 손이 많이 가는게 사실입니다. 또한, 유지보수 차원에서도 여간 쉬운 일이 아닙니다. (일례로, Page내 TextBox 스타일이 일률적으로 변경 된다거 등의 작업을 처리하기 위해서는 Page내 TextBox의 Style을 수정해야 하기 때문이죠) 예를 들어, 다음과 같은 사용자 로그인 페이지를 구현한다고 하면,
Style 정의하기 UIElement 의 Style 정의 UIElement의 모양을 변경하기 위해 Style Class를 정의하여 UIElement의 Style속성에 설정합니다. (FrameworkElement 를 상속 받은 모든 Element는 Style 속성을 가지고 있기 때문) Style Class는 SetterBaseCollection 형의 Setter property를 가지고 있습니다. SetterBaseCollection내 각각의 Setter class 는 Style의 속성에 값을 부여하는 Class로, 적용 될 Property를 지정하는 Property property와 지정된 property의 값을 설정하는 Value property가 있습니다. Style Class 는 Property와 Value가 지정 된..
VisualStateManager VisualStateManager : Control 의 상태(State) 간 전환에 사용되는 상태를 관리하는 Class 사용방법 VisualStateGroup을 VisualStateManager.VisualStateGroups 에 추가 한 뒤, VisualState를 정의하고, GoToState 함수를 사용하여 전환.