J'ai ce ComboBox dans mon Silverlight UserControl:menu déroulant ComboBox au contenu dans Dimensionnement automatique Silverlight
<ComboBox
AutomationProperties.AutomationId="cmbProjects"
Grid.Row="0"
Grid.Column="2"
ItemsSource="{Binding Projects}"
SelectedItem="{Binding SelectedProject, Mode=TwoWay}"
Style="{StaticResource DefaultComboBoxStyle}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Foreground="DarkRed" AutomationProperties.AutomationId="{Binding Number}" Width="100" Margin="0" Text="{Binding Number, Converter={StaticResource StringFormatter},ConverterParameter='\{0\}'}" />
<TextBlock AutomationProperties.AutomationId="{Binding Description}" Text="{Binding Description, Converter={StaticResource StringFormatter},ConverterParameter='\{0\} '}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Le lenghth de la plupart des éléments peuplant la combobox est supérieure à la largeur du contrôle. Lorsque je descends la liste, la liste déroulante se développe, mais pas complètement à la largeur du contenu de l'élément, résultant en un contenu qui est découpé une barre de défilement horizontale. Cela ne se produit pas avec la même liste déroulante où le contenu est dans la largeur d'origine du contrôle.
Dans WPF, je pouvais simplement définir la largeur du conteneur d'éléments sur auto; dans Silverlight, cela entraîne une erreur catastrophique. Je peux définir le avec un nombre énorme, mais le parchemin apparaît toujours, quelle que soit la largeur. En outre, dans Silverlight 2 beta 2, il y avait une propriété DropDownWidth, avec l'une des options étant "Auto", que je ne vois pas dans RTM.
Je peux contourner cela avec un peu de supercherie, en cachant principalement la barre de défilement horizontale et en ajoutant un tas de caractères afin que la liste déroulante se développe complètement pour montrer le contenu de l'élément. Évidemment, ce bidouillage n'est pas idéal. Quelqu'un at-il rencontré un problème similaire? Y at-il quelque chose qui me manque pour forcer le combobox à se développer complètement sans une barre de défilement?
ib.
Oui, je l'ai fait, et la meilleure solution que j'ai trouvée est celle que j'ai mentionnée dans ma question originale, mais je peux accéder aux propriétés ScrollViewer dont j'avais besoin pour le correctif directement de la ComboBox. Je vais vous donner un vote quand même> 8P SL3 FTW! –
Voir mes nouvelles modifications. J'ai posté un lien vers un autre sujet qui, je pense, pourrait vous être utile. – markti