본문 바로가기

2018/02

022. 비헤이비어(CallMethodAction) #3 이전 포스트에서 살펴본 방법은 원하는 기능을 구현하는데 큰 문제가 없었습니다. 하지만 그 기능을 필요로 하는 인터페이스를 마주 칠 때마다 반복해야하는 비효율적인 문제가 예상되었습니다. 사실 이 문제를 해결하는 좋은 방법은 예전 포스트들에서 이미 살펴보았습니다. 바로 Style(스타일), Template(템플릿) 관련 포스팅에서 말입니다. 관련 목차 018. 컨트롤템플릿(ControlTemplate) #1 019. 컨트롤템플릿(ControlTemplate) #2 123456789101112131415161718192021222324252627282930313233 Colored by Color Scriptercs ScrollViewer의 기본 템플릿을 구하는 방법은 예전 포스트를 참고합니다. 조금 복잡해 .. 더보기
021. 비헤이비어(CallMethodAction) #2 사용자에게 더 좋은 인터페이스 경험을 제공하기 위해 계속해서 새로운 형태의 인터페이스가 유행 또는 제안되고 있는 것 같습니다. 그 중에서 한 가지를 CallMethodAction 비헤이비어를 이용해 구현해 봅시다. 비헤이비어 이름 그대로 메소드를 호출하는 기능을 하는 비헤이비어입니다. 예제로 사용할 것은 내용(Contents)이 아주 길 때 흔히 제공되는 인터페이스입니다. 스크롤을 하는 도중 다시 처음으로 돌아가려면 많은 스크롤 양에 불편함을 느낄 때가 종종 있습니다. 그럴 때 사용하면 알맞은 인터페이스입니다. 처음으로 바로가는 버튼을 제공하는 아주 간단한 기능입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424.. 더보기
020. 비헤이비어(Behavior) #1 Behavior는 행동, 반응이란 뜻을 가지고 있습니다. 특정 상황, 조건(Trigger) 등에 따라 UI 요소에 어떤 영향을 줄 때 주로 사용됩니다. 사용자가 커스텀 비헤이비어를 만들어 기능을 확장할 수도 있습니다. 일단 비헤이비어를 사용하려면 System.Windows.Interactivity 어셈블리(dll) 참조가 필요합니다. 기본으로 제공되는 비헤이비어는 자주 사용되므로 Microsoft.Expression.Interactions 어셈블리도 함께 참조합니다. Visual Studio 설치시 설정할 수 있는 옵션에서 SDK가 제외되었다면 Blend for VS의 Assets(자산) 윈도우에서 기본으로 제공되는 비헤이비어가 보이지 않을 수 있습니다. 비헤이비어가 보이지 않는다면 Visual Stud.. 더보기
019. 컨트롤템플릿(ControlTemplate) #2 이번 포스트에서는 템플릿 수정과 다양한 템플릿의 효율적인 사용방법에 대해 알아봅니다. 1234567 Colored by Color Scriptercs 이전 포스트에서 Blend for VS의 [템플릿 편집 > 복사본 편집] 기능을 이용해 HeaderedContentControl의 기본 템플릿을 구했습니다. 1234567891011121314151617181920 Colored by Color Scriptercs 이전 포스트에서 작성했던 스타일링 작업의 XAML 코드를 참고해 템플릿을 수정했습니다. HeaderedContentControl의 구조와 외형을 변경하는 작업입니다. 1234567 Colored by Color Scriptercs HeaderedContentControl에 스타일을 각각 선언할 수.. 더보기
018. 컨트롤템플릿(ControlTemplate) #1 ControlTemplate을 한마디로 정의하자면 외형바꾸기입니다. 모든 컨트롤은 ControlTemplate을 가질 수 있습니다. 다시 말하자면 System.Windows.Controls.Control을 상속 받은 컨트롤은 템플릿을 가질 수 있습니다. 물론 아주 간단한 외형 변경은 Style을 이용해 바꿀 수도 있습니다. 하지만 다른 요소들을 추가하는 등 복잡하고 섬세한 수준의 외형 변경은 한계가 있습니다. 다시 말해 버튼의 외형에 간단한 도형이라도 추가하려면 스타일을 이용해서는 불가능에 가깝습니다. Button의 외형바꾸기는 지겨우니깐 한 단계 복잡한 컨트롤을 예를 들어 살펴봅시다. Header와 Content가 그룹으로 묶여있는 구조입니다. 위와 같이 표현하는 방법에는 어떤 것들이 있을까요? 123.. 더보기
017. 두개의 콘텐츠 버튼(Two Contents Button) #3 AttachedProperty.cs : 결합 속성 1234567891011121314151617181920212223public class AP_TwoContentsButton{ #region SecondContent public static readonly DependencyProperty SecondContentProperty = DependencyProperty.RegisterAttached( "SecondContent", typeof(string), typeof(AP_TwoContentsButton), new PropertyMetadata(string.Empty)); public static string GetSecondContent(DependencyObject dp) { return (stri.. 더보기
016. 두개의 콘텐츠 버튼(Two Contents Button) #2 TwoContentsButton.cs : 의존 속성 12345678910111213141516171819public class TwoContentsButton : Button{ #region SecondContent : 두번째 Content public string SecondContent { get { return (string)GetValue(SecondContentProperty); } set { SetValue(SecondContentProperty, value); } } public static readonly DependencyProperty SecondContentProperty = DependencyProperty.Register( "SecondContent", typeof(string),.. 더보기