본문 바로가기

Style

026. 툴팁 말풍선(ToolTip Balloon) 이번 포스트는 잠시 쉬어가는 포스트입니다. 다음 포스트에 사용될 디자인 요소도 제작할 겸해서 말입니다. 구글에서 말풍선 이미지를 검색해보면 매우 다양한 말풍선 디자인을 찾을 수 있습니다. 참고하세요. 저는 최대한 간소하게 표현해볼까 합니다. 다음 포스트에서 사용될 예제를 먼저 보도록 합시다. 기본 슬라이더의 Thumb(썸)을 드래그하면 현재 Value(값)가 말풍선 안에서 표출되는 간단한 기능입니다. 실제 구현은 그리 간단하지 않습니다만 다음 포스트에서 만들어 보려고 합니다. 12345678 Colored by Color Scriptercs 첫번째 방법입니다. 말풍선 몸체와 꼭지는 세로로 정렬되는 형태이므로 전체를 StackPanel로 그룹화했습니다. 값이 들어갈 TextBlock는 Border로 한번 .. 더보기
013. 속성 상속(Resolved Dynamically) 큰 프로젝트에서 XAML 코드 작업을 하다보면 점점 늘어나는 코드 양에 스트레스를 받을 때가 간혹 있습니다. Style로 묶어 관리하기도 하고 Resource Dictionary 파일을 여러 개 나누어 관리도 하면서 나름대로의 효율을 찾아서 자신만의 스타일을 갖게 됩니다. 1234567 Colored by Color Scriptercs 이해를 돕기위해 극단적으로 예제를 들고자합니다. 텍스트의 Font와 관련된 속성들을 보면 FontSize, FontFamily, FontWeight, FontStyle, FontStretch, Foreground 등 많은 속성들이 사용됩니다. 앞에서 이야기했 듯 이런 복잡함은 스타일, 리소스딕셔너리 등 다양한 방법들을 이용해 효율적으로 관리될 수 있습니다. 그런데 일반적으.. 더보기
009. 4가지 트리거(Triggers) Style과 Trigger는 비슷한 점이 많습니다. 다른 점이라면 스타일은 무조건 적용되는 반면 트리거는 조건을 수반한다는 점입니다. 트리거는 4가지 종류가 있습니다. Property : Dependency Property가 변경될 때 호출됩니다.Event : 이벤트가 발생할 때 호출됩니다.Data : Binding 문법으로 연결된 .NET property가 특정 데이타일 때 호출됩니다.Multi(& MultiData) : 조건을 다수 사용해 논리곱(AND) 관계를 정의합니다. 123Colored by Color Scriptercs 2개의 TextBox에 동일한 스타일을 적용했습니다. 2개를 예제로 든 이유는 포커스 상태를 쉽게 잃기 위함일뿐 다른 이유는 없습니다. 1. 프로퍼티 트리거 123456789.. 더보기
008. 스타일 파생(Derive Style) 1234567891011 Colored by Color Scriptercs Style의 BasedOn 속성을 이용해 이전 Style_ControlBase 스타일을 상속 받아 새로운 스타일을 정의합니다. TargetType을 TextBox로 제한하고 Setter 정의시 Class명과 함께 정의한다면 더욱 견고히 스타일을 정의할 수 있습니다. 12345 cs Style_ControlBase 스타일은 Control Class에만 국한되고 Style_ReadOnlyTextBox 스타일은 TextBox Class에만 국한되어 깔끔히 분리되어 재사용될 수 있습니다. 123456 Colored by Color Scriptercs TargetType을 TextBox로 제한한 상태에서는 TextBox Class명을 생략.. 더보기
007. 스타일 정의(Override Style) 1234567 Colored by Color Scriptercs Style의 Setter를 정의할 때 Property 앞에 Class명을 지정할 수 있습니다. 1234Colored by Color Scriptercs TextBox와 Button은 모두 Control에서 파생된 컨트롤이기 때문에 스타일에 영향을 받습니다. 추가로 TargetType을 지정하지 않았기 때문에 가능한 일이기도 합니다. 12345 Colored by Color Scriptercs TargetType을 지정하면 해당 타입에만 영향을 줄 수 있기 때문에 많은 스타일을 다루는 프로젝트에서는 약이 되기도 하고 독이 되기도 합니다. 저는 TargetType을 지정해서 관리하는 것을 선호합니다. 12cs Style을 지정했지만 해당 속성을.. 더보기