in
Forums
Blogs
Files
Devexpress.Com
Client Center
Support Center
DevExpress Channel

Handy Code: Allow user to change LookAndFeel at runtime using a DX ListBox Control

Last post 8/9/2007 11:52 PM by Rafick Sayah. 0 replies.
Page 1 of 1 (1 items)
Sort Posts:
Previous Next
  • 8/9/2007 11:52 PM

    Handy Code: Allow user to change LookAndFeel at runtime using a DX ListBox Control

    Add a new Project Setting (User,String) and name it 'Theme' - this will remember the user's last theme when opening the form.

    Insert a DefaultLookAndFeel and a DX ListBox on your form and paste this code in the Form's Sub New() event:

            DevExpress.UserSkins.BonusSkins.Register()

            DevExpress.UserSkins.OfficeSkins.Register()

            DevExpress.Skins.SkinManager.Default.RegisterAssembly(GetType(DevExpress.UserSkins.Office2007Bonus).Assembly)

            DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista()

     

            Dim skins As DevExpress.Skins.SkinContainerCollection = DevExpress.Skins.SkinManager.Default.Skins

            For Each skin As DevExpress.Skins.SkinContainer In skins

                Me.lboTheme.Items.Add(skin.SkinName)

            Next

            For Each s As String In [Enum].GetNames(GetType(DevExpress.LookAndFeel.LookAndFeelStyle))

                If s <> "Skin" Then Me.lboTheme.Items.Insert(0, s)

            Next

            Me.lboTheme.Items.Add("Windows XP Theme")

            Me.lboTheme.SelectionMode = SelectionMode.One

            Me.lboTheme.SelectedValue = My.Settings.Theme

            AddHandler Me.lboTheme.SelectedValueChanged, AddressOf lboTheme_SelectedValueChanged

            lboTheme_SelectedValueChanged(Me, Nothing)

     

    ..then add this rountine elsewhere in the form class:

        Private Sub lboTheme_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs)

            If Me.lboTheme.SelectedItem.ToString = "Windows XP Theme" Then

                Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = True

            ElseIf [Enum].IsDefined(GetType(DevExpress.LookAndFeel.LookAndFeelStyle), Me.lboTheme.SelectedItem.ToString) Then

                Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = False

                Me.DefaultLookAndFeel1.LookAndFeel.Style = [Enum].Parse(GetType(DevExpress.LookAndFeel.LookAndFeelStyle), Me.lboTheme.SelectedItem.ToString)

            Else

                Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = False

                Me.DefaultLookAndFeel1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Skin

                Me.DefaultLookAndFeel1.LookAndFeel.SkinName = Me.lboTheme.SelectedItem.ToString

            End If

            My.Settings.Theme = Me.lboTheme.SelectedItem.ToString

        End Sub

    Here is a screen clipping

    Screen Clipping


    Filed under:
Page 1 of 1 (1 items)
Copyright © 1998-2008 Developer Express Inc.
ALL RIGHTS RESERVED