트레이닝 센터

탐색 및 레이아웃

C1Themes를 WinForms 응용프로그램에 추가하기

본문은 C1Themes를 기존의 WinForms 응용프로그램에 어떻게 추가하는지 소개합니다. C1Themes는 전문적으로 설계된 테마가 25종 이상 내장되어 있습니다. 또한 사용자가 테마를 정의하여 응용 프로그램에 적용할 수도 있습니다. 본문은 주로 C1FlexGrid와 C1TrueDBGrid의 테마 설정을 소개합니다. 다음 방법에 따라 ComponentOne Studio for WinForms의 C1Report, C1Ribbon 및 기타 컨트롤에 C1Themes를 추가할 수 있습니다.


1. C1ThemeController 추가

먼저, 변경해야 하는 테마의 컨트롤을 응용프로그램에 추가합니다. 본문 Demo에서 먼저 도구상자의 C1FlexGrid와C1TrueDBGrid를 창에 드래그합니다. 또한 두 개의 컨트롤에 데이터 바인딩을 합니다. C1FlexGridDataSource에는 Employees 데이터리스트를 바인딩하고 C1TrueDBGrid에는 EmployeesOrders를 바인딩합니다. 데이터 바인딩 코드는 다음과 같습니다. :

this.c1TrueDBGrid1.DataSource = this.employeesOrdersBindingSource;
this.c1FlexGrid1.DataSource = this.employeesBindingSource;

그리고 도구상자에서 C1ThemeController를 창에 드래그하면 다음과 같은 에디터가 팝 업 됩니다.


C1FlexGrid、C1TrueDBGrid의 어느 창에 각기 다른 테마를 설정해주고 None을 감출 수 있습니다.


2. 모든Themes를 ComboBox에 추가

표준ComboBox를 창에 추가한 후 FormLoad 할 때, C1ThemController의 모든 사용 가능한 테마를 ComboBox의 드롭 다운 메뉴에 추가하여 사용 시 편리하게 선택하고 테마를 초기화로 설정할 수 있습니다. 코드는 다음과 같습니다. :

// populate combobox with all available themes
            this.comboBox1.Items.AddRange(C1.Win.C1Themes.C1ThemeController.GetThemes());
            // set initial theme
            comboBox1.SelectedIndex = 0;

3. 테마설정

ComboBox의 SelectedIndexChanged 이벤트를 설정은 드롭 다운 상자를 열고 상응하는 테마를 선택할 때, 해당 이벤트를 전용하여 창의 모든 컨트롤 테마를 변경합니다. 구체적인 코드는 다음과 같습니다. :

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Set theme on the theme controller:
            this.c1ThemeController1.Theme = this.comboBox1.SelectedItem.ToString();
            // ...and apply it to all themable controls (this will override any control-specific theme settings):
            Action setTheme = null;
            setTheme = (c) =>
            {
                if (C1.Win.C1Themes.C1ThemeController.IsObjectThemeable(c))
                    this.c1ThemeController1.SetTheme(c, this.c1ThemeController1.Theme);
                foreach (Control cc in c.Controls)
                    setTheme(cc);
            };
            setTheme(this);
        }
    }

먼저, 코드를 바탕으로 C1ThemeController에 ComboBox 드롭다운 메뉴에서 선택한 Theme를 설정해줍니다. 그리고 모든 창의 컨트롤에서 해당 Theme를 사용합니다. 실행 결과는 다음 그림과 같습니다. ComboBox의 드롭다운 메뉴에서 각각 다른 Theme를 선택하여 창의 C1FlexGrid와 C1TrueDBGrid설정할 수 있습니다.



샘플 다운로드



한국 그레이프시티 공식카페에서 기술지원을 받으실 수 있습니다.
이메일을 통해서도 기술지원을 받으실 수 있습니다.