2010-05-06 6 views
0

J'ai le xaml suivant avec toute la reliure enlevée;WPF XAML ComboBox Largeur

<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Left" Height="20"> 
    <ComboBox x:Name="ddlDay" Width="30"/> 

Si je mets la largeur de la zone de liste déroulante à 200 il fonctionne, mais si je l'ai mis à 50 elle ne présente pas la taille passé par défaut.

Je suis un peu nouveau sur xaml, donc est ce comportement par défaut ou que dois-je faire pour rendre la combobox petite? Je ne suis pas capable de reproduire le comportement que vous décrivez.

Répondre

0

Je l'ai essayé avec le test suivant:

<Window x:Class="ComboWidthSample.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Grid> 
     <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Height="20"> 
      <ComboBox ItemsSource="{Binding}" Width="30" /> 
      <ComboBox ItemsSource="{Binding}" Width="50" /> 
      <ComboBox ItemsSource="{Binding}" Width="200" /> 
     </StackPanel> 
    </Grid> 
</Window> 

using System.Linq; 

namespace ComboWidthSample 
{ 
    public partial class Window1 
    { 
     public Window1() 
     { 
      InitializeComponent(); 
      DataContext = Enumerable.Range(1, 10).Select(i => "My ComboBox Item " + i).ToList(); 
     } 
    } 
} 

fais-tu quelque chose de différent que cela? Peut-être la liaison de données à la propriété Width ou le style de votre ComboBox?