10
votes

Comment changer de thèmes dans Telerik Winforms?

Comment puis-je dire Telerik pour Winforms qui de ses thèmes à utiliser?

J'ai créé un nouveau projet Winforms et j'ai déposé une vision de RadPage sur le formulaire, mais il y a une marge de 5 pixels d'espace mort tout autour, les onglets sont presque deux fois plus grands que nécessaire et tout est brillant et tout bleu. Même en dehors de l'espace gaspillé, toutes ces choses bleues sembleraient horriblement hors de la place dans notre application. Je veux juste un look de Windows standard et je suppose que la façon d'accomplir est de sélectionner un thème différent, moins bleu moins brillant. (Ou existe-t-il d'une autre manière?)

Voici ce que j'ai essayé:

  • J'ai essayé de définir l'activétification à FALSE, mais les onglets n'ont donc aucune bordure. Il n'y a donc absolument aucune indication de l'endroit où cliquer ou quel onglet est actif - pas de bien du tout.
  • Je peux déposer la propriété Themename dans la grille de la propriété, mais les seules options sont "réinitialisées" et "Controldefault". Aucun réglage ne fait quoi que ce soit (même avec l'enabletheming de retour à vrai).
  • Il y a un tas de classes thématiques dans la boîte à outils (Aquatheme, Breezetheme, etc.), mais ajoutant ceux à ma forme ne fait aucune différence. Je pensais qu'ils pourraient apparaître dans la liste déroulante du même nom, mais ils ne le font pas.
  • J'ai essayé de laisser tomber un radtthememanager sur ma forme, mais cela n'a qu'une collection LoadEdthemes, qui est vide. Je peux y ajouter des choses, mais cela ajoute simplement une thémèse et la définition d'une de ces réponses semble impliquer la navigation dans un fichier, et je n'ai pas de fichiers thématiques à parcourir.
  • Il y a une propriété themeclassname sur la vision de Radpage, mais c'est juste une chaîne (par défaut de Telerik.wincontrols.ui.radpageview) et je n'ai aucune idée de ce que je pourrais le changer ou comment il se rapporte même aux thèmes.

    Ceci est ridicule. Tout ce que je veux, c'est un contrôle d'onglet qui ressemble à un contrôle de tabulation! Comment puis-je faire ça?


2 commentaires

Regardez l'aide en ligne de Telerik à voir si cela vous obtient plus loin: Telerik.com/help /winforms/overview.html


Merci pour le lien - cela m'a conduit à Telerik.com/ Aide / Winforms / Thèmes - Utilisation par défaut-themes.html qui donne une recette pour définir un thème par défaut. Malheureusement, cela ne fonctionne pas - pour certains thèmes (Aqua, Breeze), il conserve simplement le thème bleu ballonné; Pour les autres (Breezextended, désert), il va au même look plat sans frontières comme avec Enabletheming = Faux.


3 Réponses :


13
votes

Le meilleur moyen d'accomplir cette demande serait d'utiliser les thémérasolutionsVice. Vous devrez d'abord traîner l'un des thèmes de la boîte à outils. Par exemple, si vous ajoutez le composant Windows7theme à votre formulaire, vous appliquez le thème à l'aide des éléments suivants.

private void Form1_Load(object sender, EventArgs e)
{
    ThemeResolutionService.ApplicationThemeName = "Windows7";
}


0 commentaires

3
votes

Je travaille actuellement sur une application WinForm / Telerik. C'est une application MDI.

Tout d'abord, j'ai ajouté dans les références de mon projet Telerik.wincontrols.themes.Breeze DLL, puis dans le constructeur de ma forme principale, voici ce que j'ai fait: p>

    private fMain()
    {
        InitializeComponent();

        ThemeResolutionService.ApplicationThemeName = "Breeze"; 
        RadGridLocalizationProvider.CurrentProvider = new FrenchRadGridLocalizationProvider();
    }


0 commentaires

0
votes

Pour charger des thèmes dynamiques, j'ai suivi:

private void LoadTheme()
{

        var themefiles = Directory.GetFiles(System.Windows.Forms.Application.StartupPath, "Telerik.WinControls.Themes.*.dll");

        foreach (var theme in themefiles)
        {
            var themeAssembly = Assembly.LoadFile(theme);
            var themeType = themeAssembly.GetTypes().Where(t => typeof(RadThemeComponentBase).IsAssignableFrom(t)).FirstOrDefault();
            if (themeType != null)
            {
                RadThemeComponentBase themeObject = (RadThemeComponentBase)Activator.CreateInstance(themeType);
                if (themeObject != null)
                {
                    themeObject.Load();
                }
            }
        }
        var themeList = ThemeRepository.AvailableThemeNames.ToList();                
            themeDropDown.DataSource = themeList;
}

private void ThemeDropDown_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
            string strTheme = themeDropDown.Text;
            Theme theme = ThemeResolutionService.GetTheme(strTheme);
            if (theme != null)
            {
                    ThemeResolutionService.ApplicationThemeName = theme.Name;    
            }
}


0 commentaires