2012-02-01 4 views
4

J'ai créé cette démo simple parce que j'ai du mal à faire du dimensionnement automatique dans WPF. Voici le code simple:Pourquoi cette fenêtre WPF n'est pas dimensionnée à son contenu ayant SizeToContent = "WidthAndHeight"?

<Window x:Class="UnderstandSizing.Window3" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
SizeToContent="WidthAndHeight" 
ResizeMode="NoResize" > 

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <TabControl Grid.Row="0" > 
     <TabItem Header="CCCC" /> 
    </TabControl>   
    <Button Grid.Row="1" Content="Text" /> 
</Grid> 
</Window> 

Comme la grille a tout réglé sur Auto et la fenêtre est configuré pour sizeToContent je devrait avoir le TabControl et le bouton et rien d'autre à la fenêtre, mais il y a des espaces vides sur ce . Regardez:

Design time Design-temps

Runtime d'exécution

Je dois manquer quelque chose ...

+0

Vous avez répertorié ce que votre exemple WPF est en train de faire, mais je ne sais pas exactement quel comportement vous attendez. Pouvez-vous nous dire ce que vous attendez, afin que nous puissions vous orienter dans la bonne direction? NVM Je vois le détail dans la question ... – EtherDragon

+0

Je soupçonne que c'est juste de la place pour le TabItem actuel. Mettez un TextBox dans le TabItem. En ce moment, vous avez seulement un en-tête. – Paparazzi

+0

En ce qui concerne la largeur, je suspecte que la zone de titre de bordure utilise autant d'espace. – Paparazzi

Répondre

4

Il semble que la la fenêtre a une largeur minimale que vous ne pouvez pas aller au-dessous même si vous activez le redimensionnement. Cela pourrait avoir à voir avec les boutons en haut. Si vous définissez WindowStyle à ToolWindow, il apparaîtra comme la taille correcte. Fait intéressant, si vous le définissez sur None, il sera initialement de la même taille que la valeur par défaut, mais vous pouvez le redimensionner plus petit.

De toute façon, voulez-vous vraiment que votre fenêtre soit aussi petite? Si votre largeur est plus grande, la fenêtre s'ajustera correctement au contrôle.

+0

C'est juste un test parce que j'ai des problèmes avec la vraie fenêtre. Laissez-moi essayer à nouveau avec des tailles plus grandes. –

+1

Ok, vous aviez raison, mais j'ai toujours le problème, donc je vais créer une nouvelle question et accepter cette question en 3 minutes (SO règles ...: \) –

+0

@SoMoS assez juste. – Ray

Questions connexes