2010-07-29 2 views

Répondre

1

Je ne me souviens pas s'il existe une telle propriété dans une zone de liste déroulante, mais vous pouvez toujours modifier un modèle de contrôle par défaut. Dans votre cas, vous devez spécifier une propriété width d'un élément contextuel dans un modèle de contrôle. Voici un exemple de code, tiré de l'un des thèmes WPF de Codeplex:

<ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}"> 
    ... 
     <Popup ... Width="100" > 
    ... 
</ControlTemplate> 

Ceci est une idée générale. Vous pouvez regarder dans un code source de thèmes pour plus d'informations. Ces pages MSDN peuvent également être utiles:

+0

J'ai essayé ce qui suit, mais cela n'a pas fonctionné. J'ai également essayé la partie ControlTemplate dans ma comboxox xaml mais cela n'a pas fonctionné. Avez-vous un code de travail avec vous ou quelque chose de similaire ?? – samar

+0

Vous pouvez rechercher un exemple dans un fichier de thème (à partir de codeplex). Il est juste trop gros pour coller ici, il suffit d'ouvrir un fichier de thème, par exemple BureauBlue.xaml, et recherchez cette ligne: n535

+0

de copier le modèle de contrôle complet (ce qui entraîne beaucoup de code dupliqué, non?), vous pouvez également dériver une sous-classe de ComboBox, remplacer OnApplyTemplate, récupérer l'instance de Popup nommée PART_Popup et définir son La propriété de la largeur de ce que vous avez besoin tout en laissant tout le reste à quiconque modèle vos comboboxes. –

Questions connexes