J'ai un combobox avec un tas de valeurs dedans. Je veux changer la largeur de la combobox quand "Liste" est sélectionné. Voici mon xaml actuel:WPF Combobox ne pas redimensionner
<ComboBox Name="DataTypeSelector" ItemsSource="{Binding ElementName=DataItemsBuildWindow, Path=DataContext.Types}" SelectedValue="{Binding DataType}" HorizontalAlignment="Stretch" Width="160">
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Value="List" Binding="{Binding SelectedValue, ElementName=DataTypeSelector, Converter={StaticResource ToStringConverter}}">
<Setter Property="Width" Value="80" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
Cela ne fonctionne pas pour une raison quelconque.
Si je change le Setter à ceci:
<Setter Property="Visibility" Value="Hidden" />
Ensuite, la zone de liste déroulante est caché lorsque "Liste" est sélectionnée. Pourquoi ne fonctionne-t-il pas pour la largeur?
Dans WPF, vous ne configurez généralement pas votre interface graphique en fournissant une largeur ou une hauteur fixe. Est-ce que cela fonctionne quand vous venez de définir le ComboBox à 80 depuis le début? Je soupçonne que votre mise en page ne change tout simplement pas lorsque vous définissez la largeur. – nvoigt