2009-06-10 7 views
1

j'essaie de faire quelque chose censé être extrely facile, mais il est maintenant 3 heures que je ne peux pas ...WPF difficultés de positionnement de contrôle

J'essaie d'avoir 2 boutons « OK » et « Annuler » près de une autre, mais cela ne fonctionne pas, quoi que je fasse sur le bouton d'annulation rend invisible, voici le code:

<Grid x:Name="LayoutRoot" Height="242"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="0.723"/> 
     <ColumnDefinition Width="0.128"/> 
     <ColumnDefinition Width="0.149*"/> 
     <ColumnDefinition Width="0.14"/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="0.291*"/> 
     <RowDefinition Height="0.12*"/> 
     <RowDefinition Height="0.413*"/> 
     <RowDefinition Height="0.176*"/> 
    </Grid.RowDefinitions> 
    <Label Grid.Row="0" Content="Please click the link next to get content." Background="{x:Null}" Foreground="#FFFFFFFF" Grid.Column="1" Margin="0,2,4,2" Grid.ColumnSpan="2"/> 
    <TextBlock Grid.Row="1" Grid.ColumnSpan="3"> 
     <Hyperlink x:Name="hlLicense" Click="hlLicense_Click" TextDecorations="Underline" NavigateUri="Http://www.google.com" Foreground="#FFD24A4A"> 
      <Run Text="Http://www.google.com"/> 
     </Hyperlink> 
    </TextBlock> 
    <TextBox Text="" TextWrapping="Wrap" AcceptsReturn="True" x:Name="tbLicense" VerticalScrollBarVisibility="Auto" Grid.Row="2" Grid.ColumnSpan="3"/> 
    <TextBlock Foreground="Red" Name="messageLabel" Grid.Column="0" Text="" TextWrapping="WrapWithOverflow" Grid.Row="3" Grid.ColumnSpan="3" /> 
    <Button Content="OK" Grid.Row="3" Grid.Column="2" Width="87.083" Height="25.277" x:Name="btnActive" Click="btnActive_Click"  /> 
    <Button Width="87.083" Content="Cancel" IsCancel="True" Grid.Column="3" d:LayoutOverrides="Width" Margin="0,0,0,0" HorizontalAlignment="Right" Grid.Row="3" /> 

</Grid> 

Merci John

+0

vous semblez chevaucher votre bouton d'annulation (col 3, ligne 3) avec votre dernier TextBlock (col-span 3, ligne 3) –

+0

ok, mais je n'ai trouvé aucun moyen de résoudre ce problème! Rien ne fonctionne. –

Répondre

0

il a à voir avec vos largeurs de ColumnDefinition. Quand vous les sortez, c'est très bien. Vos largeurs sont trop petites, et la largeur de la colonne du bouton OK est définie sur * afin qu'elle s'autosise pour remplir l'espace supplémentaire.

cela montrera votre bouton d'annulation fin, car il est la colonne sera ajusté automatiquement:

<Grid.ColumnDefinitions> 
     <ColumnDefinition Width="0.723"/> 
     <ColumnDefinition Width="0.128"/> 
     <ColumnDefinition Width="0.149*"/> 
     <ColumnDefinition Width="0.14*"/> 
    </Grid.ColumnDefinitions> 

Je ne sais pas si c'est exactement ce que vous voulez, mais vous pouvez travailler avec elle à partir de là pour faire exactement ce que vous avez besoin.