! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

WPF 테마를 추가하여 데스크톱 응용 프로그램의 스타일을 지정하는 방법 > 온라인 스터디

본문 바로가기

ComponentOne

온라인 스터디

WPF WPF 테마를 추가하여 데스크톱 응용 프로그램의 스타일을 지정하는 방법

페이지 정보

작성자 GrapeCity 작성일 2022-12-27 15:09 조회 822회 댓글 0건

본문

테마를 통해 전문적이고 결합된 모습의 전체 응용 프로그램의 스타일을 빠르게 지정할 수 있습니다. 코드 한 줄만으로 ComponentOne WPF 테마를 전체 데스크톱 응용 프로그램에 적용할 수 있습니다. 또는 테마 컴포넌트를 XAML에 끌어서 놓으면 됩니다.

ComponentOne WPF Edition에는 22개의 전문 테마가 제공됩니다. 다음에서는 Microsoft Office, Material 디자인 및 Windows 11에서 영향을 받은 스타일을 포함하여 사용 가능한 WPF 테마를 살펴볼 수 있습니다.

Microsoft Office 화이트 테마

Microsoft Office 화이트 테마


ComponentOne WPF 테마를 적용하는 세 가지 방법

WPF에 테마를 적용하는 것은 매우 쉬우며 여기에는 세 가지의 다양한 접근 방법이 있습니다. 테마를 적용하는 가장 쉬운 방법은 C1 테마 태그에서 XAML 루트 요소를 줄 바꿈하는 것입니다.

<c1:C1ThemeMaterial xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml">
    <!-- Content -->
</c1:C1ThemeMaterial>

코드별로 테마를 적용할 수도 있습니다. 예를 들어 MainWindow.xaml.cs에서 테마를 인스턴스화하고 아래 코드에서처럼 Apply 메서드를 사용하여 특정 FrameworkElement(즉, 단일 컨트롤) 또는 전체 창에 테마를 지정할 수 있습니다.

C1.WPF.Themes.C1ThemeCosmopolitan myTheme = new C1.WPF.Themes.C1ThemeCosmopolitan();
myTheme.Apply(this); // applies theme to entire window

또는 응용 프로그램의 병합된 사전 리소스에 추가하여 전체 응용 프로그램에 테마를 원활하게 적용할 수도 있습니다.

Application.Current.Resources.MergedDictionaries.  
    Add(C1.WPF.Theming.C1Theme.GetCurrentThemeResources(new C1.WPF.Theming.BureauBlack.C1ThemeBureauBlack()));  

이 메서드는 처음으로 테마를 적용하는 경우에만 해당됩니다. 런타임 시 또 다른 테마로 변경하는 경우 병합된 사전에서 먼저 이전 테마를 제거해야 합니다.

 

XAML 별로 ComponentOne WPF 테마를 추가하는 단계

NuGet에서 C1.WPF.Themes 패키지를 다운로드하거나 샘플을 받도록 C1ControlPanel을 사용하여 라이브러리를 설치할 수 있습니다. ComponentOne WPF 테마는 도구 상자에 설치하지 않지만 XAML에서 쉽게 계속 만들 수 있습니다. 단계는 다음과 같습니다.

  1. ComponentOne 컨트롤을 포함하는 WPF 응용 프로그램을 엽니다.
  2. 참조를 C1.WPF.Theming 패키지에 추가합니다. - 여기에는 공통 테마 관련 로직이 포함됩니다.
  3. 참조를 하나 이상의 특정 테마 패키지에 추가합니다(예: C1.WPF.Theming.ExpressionDark).  
    다양한 테마를 여기에서 찾아볼 수 있습니다.
  4. XAML 페이지에서 ComponentOne의 XML 네임스페이스가 정의되어 있는지 확인합니다. 그렇지 않은 경우 페이지 상단에 추가합니다(모든 ComponentOne 컨트롤에 대해 페이지당 한 번만 정의해야 합니다).
    xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
  5. 루트 요소에서 상위 태그를 만들고(예: Grid) 다음과 같이 태그를 입력합니다.
    <c1:C1ThemeExpressionDark> ... </c1:C1ThemeExpressionDark>

img

ComponentOne WPF 테마를 사용자 정의하는 방법

WPF 컨트롤은 표준 .NET 컨트롤과 동일한 암시적 스타일 관리를 따릅니다. 즉, 공통 스타일을 정의하여 응용 프로그램 전체에서 다시 사용할 수 있습니다. 테마가 적용된 방식에 따라 테마 상단에 스타일을 적용할 수 있습니다. 테마를 사용자 정의하기에 가장 좋은 방법은 이전에 설명한 대로 병합된 사전을 통해 응용 프로그램 수준에서 테마를 설정하는 것입니다. 그런 다음 특정 페이지에서 로컬에 정의된 스타일은 이후에 적용됩니다.

이 접근 방법을 통해 처음부터 전체적으로 새 테마를 만들거나 새로운 접근 방법 스타일 지정 컨트롤을 배우지 않고도 ComponentOne WPF 테마를 쉽게 사용자 정의할 수 있습니다. 예를 들어 변경 사항을 적용하는 새로운 암시적 스타일을 정의하여 C1DockControl에 적용된 어떤 테마든 수정할 수 있습니다.

<UserControl.Resources>
    <Style TargetType="c1:C1DockControl">
        <Setter Property="HeaderBackground" Value="Red" />
        <Setter Property="TabControlBackground" Value="Maroon" />
    </Style>
</UserControl.Resources>

가장 일반적인 시나리오의 경우 위의 사항과 같이 Style setter로 전체 컨트롤의 테마를 다시 지정할 수 있습니다. ComponentOne WPF 컨트롤을 사용하면 복잡한 XAML 템플릿을 사용자 정의하지 않아도 되도록 컨트롤의 모든 부분에 대해 수많은 브러시 속성이 노출됩니다. 

img

처음부터 ComponentOne 컨트롤의 자체 테마를 만들고 싶다면 필요한 각 컨트롤에 대해 일반적인 모든 .xaml 파일을 가져와 시작한 다음 XAML 요소를 직접 편집하거나 스타일을 만들 수 있습니다. 전체 WPF Edition을 설치하고 C:\Program Files (x86)\ComponentOne\WPF Edition\Resources에서 찾아 XAML 리소스 파일을 가져올 수 있습니다.

 



지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.