グリッドベースのXAMLページを作成しました。グリッドでは、上端余白、垂直、値を必要としない画像を表示します。私のページでは、テキストブロックに2つのラベルがあります。これらのラベルは、グリッドスタックパネルに適切に配置されず、テキストブロック内の上余白の値が負になります。私はMargin = "0、-35,0,0"を使用しなければならない最初のラベルのテキストブロックと2番目に余白= "0、-650、0、0を使用する必要があります。XAMLは助けてください。負の高さのマージン値を使用してコントロールを垂直方向に正しく配置する
<Window
x:Class="MasterPage.ApplicationInfoWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:v="clr-namespace:MasterPage"
Title="Intake 4" Height="900" Width="1000" Background="#FFD9DDE8">
<DockPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
</Grid>
<StackPanel >
<Border Margin="0, 0, 0, 0" BorderBrush="Black" BorderThickness="1">
<StackPanel Height="133" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<StackPanel>
<Image Source="Images\header.jpg" Stretch="Fill" DockPanel.Dock="Top" Height="47" />
</StackPanel>
<StackPanel Margin="3,0,0,5" HorizontalAlignment="Left">
<Image Source="Images\DSPASS_logo.png" Width="324" Stretch="Fill" DockPanel.Dock="Top" Height="80" />
</StackPanel>
<StackPanel DockPanel.Dock="Top" HorizontalAlignment="Right" >
<TextBlock FontSize="15" TextWrapping="WrapWithOverflow" Height="25" Margin="0,-35,0,0" >
<Label FontSize="10" HorizontalContentAlignment="Right" HorizontalAlignment="Right" Name="Namelabel" Width="230" FontWeight="Bold" Foreground="#1664A1" Content="Name"/>
</TextBlock>
</StackPanel>
</StackPanel>
</Border>
<Border Margin="0, 0, 0, 0" BorderBrush="Black" BorderThickness="1">
<StackPanel Background="wHITE" Height="358" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1">
<StackPanel>
<Image Source="Images\silhouette.jpg" VerticalAlignment="Top" HorizontalAlignment="Left" Width="320" Stretch="Fill" DockPanel.Dock="Top" Height="360" />
</StackPanel>
<StackPanel VerticalAlignment="Top" >
<TextBlock FontSize="15" HorizontalAlignment="Right" Height="75" Margin="0, -650, 0, 0" TextWrapping="WrapWithOverflow" >
<Label FontSize="35" HorizontalContentAlignment="Left" Name="Namelabel2" Width="640" FontWeight="Bold" Foreground="#1664A1" Content="Name"/>
</TextBlock>
</StackPanel>
</StackPanel>
</Border>
</StackPanel>
</DockPanel>
</Window>
は、あなたの答えをありがとうございました。私は下にグリッドを追加する必要があると思います。私が追加しているのは、ラベルを表示するためにいくつかの行と列です。基本的に、いくつかの列が各行の幅が異なるテーブルです。ここでお勧めのグリッドですか? – mrsql0715
@lelizabethグリッドを使うのが好きです。グリッドを使うのが好きです。その代わりに、それらを接続するもう少しコードが必要です。あなたの状況では、列の幅が常に同じではない場合、単一の行グリッドをスタックできます。デッドスペースを橋渡しするには、ダミーの列(Width = "*")を使用することを忘れないでください。 – Funk
私はあなたの記事が素晴らしかったと言った。しかし、彼らは猫を肌に触れる二つの方法です。私はもう2つのプロパティを変更し、新しいスタックパネルを追加するだけでした。あなたが見ることができるように、新たなスタックパネルは属性Orientation = "Horizontal"属性を使って追加されていますので、グリッドは負のマージン値を追加することなく機能します。下記を参照してください。 – mrsql0715