2017-06-28 4 views
0

Mon problème est similaire à this question mais les solutions nécessitent l'utilisation de DockPanel qui n'est pas disponible dans UWP.Comment emballer les contrôles dans StackPanel?

J'ai un CheckBox sur la gauche et un StackPanel sur la droite. Ce StackPanel a deux TextBlock s et un Hyperlink. Je veux envelopper le texte dans ce StackPanel. J'ai également essayé de remplacer ce StackPanel par Grid mais je ne peux pas le comprendre. Voici le XAML:

<Grid Grid.Row="22" 
    Grid.ColumnSpan="2"> 

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto"/> 
    <ColumnDefinition Width="*"/> 
</Grid.ColumnDefinitions> 

<CheckBox Grid.Column="0"/> 
    <StackPanel Orientation="Horizontal" 
       Grid.Column="1"> 

     <TextBlock Text="{x:Bind TermsViewModel.Terms1}" 
        TextWrapping="Wrap"/> 
     <HyperlinkButton Content="{x:Bind Link}" 
         NavigateUri="someRandomUri"/> 
     <TextBlock Text="{x:Bind TermsViewModel.Terms2}" 
        TextWrapping="Wrap"/> 
    </StackPanel> 
</Grid> 
+0

Si les deux '' TextBlock' et HyperlinkButton' ont la même largeur ou une largeur différente? –

+0

@VijayNirmal peut être différent –

Répondre

2

Pour utiliser au milieu Hyperlink d'un paragraphe que vous ne voulez pas utiliser StackPanel .Vous juste besoin TextBlock. Voici l'exemple de code

<TextBlock TextWrapping="Wrap"> 
    <Run Text=""/> 
    <Hyperlink NavigateUri="someRandomUri"> 
     <Run Text=""/> 
    </Hyperlink> 
    <Run Text=""/> 
</TextBlock> 

Pour en savoir plus sur Create a Hyperlink text element

+0

Non. Divisant en 3 colonnes différentes, le texte de la dernière colonne n'enveloppera que dans la troisième colonne. Le texte devrait commencer à partir de la première colonne (sur la nouvelle ligne). –

+0

Je ne peux pas comprendre. Pouvez-vous expliquer un peu plus clairement? –

+0

Lorsque le texte de la dernière colonne est encapsulé, il reste dans la dernière colonne uniquement. Ainsi, la première ligne est pleine de texte (à partir de la première colonne) mais dans la deuxième ligne, le texte commence à partir de la troisième colonne. Je veux qu'il commence aussi à partir de la première colonne de la deuxième ligne (de sorte qu'il semble que tout le texte se trouve dans un seul TextBlock) –