2017-12-14 22 views
0

画面の左上に画像を配置したい。画像と同じ行の中央にTextBlockが配置されます。画面の上部には、左にイメージがあり、中央にTextBlockがあるはずです。私は以下のようにしてみました。しかし、画像とTextBlockの両方が中央に整列しているようです。画面上部にTextBlockと画像を合わせる - uwp

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Background="AliceBlue" VerticalAlignment="Top"> 
    <Image x:Name="icon_goback2" Source="Assets/icon_home.png" Margin="10,0,0,0" Height="50" Width="50" /> 
    <TextBlock Text="Your Page" HorizontalAlignment="Center" FontWeight="Bold" Foreground="White" FontSize="70" /> 
</StackPanel> 

答えて

0

だけGridImageTextBlockためLeftCenterとしてHorizontalAlignmentを設定し、それぞれ

<Grid VerticalAlignment="Top"> 
    <Image HorizontalAlignment="Left"/> 
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"/> 
</Grid> 
+0

これはまさに私が上記とあなたの前に投稿したのと同じ答えです。たとえこの問題が本当に単純であったとしても、ちょっとしたお尻が痛いです。 XD –

+2

@AndréBあなたの答えの問題は、 'StackPanel'の代わりに' Grid'を使用していることです( 'StackPanel'を使って' Horizo​​ntalAlignment'を 'Stretch'に設定したい場合)、' VerticalAlignment' 'Center'の' TextBlock'を 'Image'の中心に設定します –

+0

あなたは完全に@Vijayです! –

1

次のコード試すことができます。

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <Image x:Name="icon_goback2" Source="Assets/icon_home.png" Margin="10,0,0,0" Height="50" Width="50"/> 
    <TextBlock Grid.Column="1" Text="Your Page" HorizontalAlignment="Center" FontWeight="Bold" Foreground="White" FontSize="70"/> 
</Grid> 

このコードは何をするかを3列にグリッドを分割し、1つのST列(Grid.Column="0")で<Image>を配置し、<TextBlock>であります列番号Grid.Column="1")。必要に応じてImageとTexblockのアライメントをさらに変更することができます。

また、StackPanelは、方向を水平に設定しているときに子要素の水平方向の配置を常に上書きすることに注意してください。これは、グリッドを使用して、複数の行と列に分割する方が、このようなシナリオでは優れています。


編集: あなたはこのような何かに列の定義を変更することができ、非常に大きなテキストブロックがあるので:

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

を。これは、設定列の幅を持つ2つの部分にあなたのグリッドを分割します自動的に。

これが役に立ちます。

+0

こんにちは、私のテキストブロックのfine.Butテキストがかなりlarge.itはそれに完全に – nsds

+0

@nsds Iに示されていないされて動作します使用します私の答えを編集しました。 – Pratyay

+1

@nsdsその場合、2番目のを自動幅で定義する必要があります –

関連する問題