2011-10-26 21 views
0

私は奇妙な問題があります。私はTabControlのはそうのように作成しました:いくつかのようにのように作成されたタブを持つWPF TabItemグリッドの内容が途中で消える

<TabControl HorizontalAlignment="Stretch" Name="tabControl" VerticalAlignment="Stretch" FontSize="10"> 
... 
</TanControl> 

:私は、グリッドを持って、各タブ内

<TabItem Header="XXXX" Name="tab1"> 
... 
</TabItem> 

、ツールボックスのドラッグ&ドロップによって生成されたコードを以下、Iそのような最初のコントロールにデータを追加しました:ラベルは遠くダウングリッドの途中よりに配置された後

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,6" Height="28" HorizontalAlignment="Right" Name="label001" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,34" Height="28" HorizontalAlignment="Right" Name="label002" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,62" Height="28" HorizontalAlignment="Right" Name="label003" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,90" Height="28" HorizontalAlignment="Right" Name="label004" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,130" Height="28" HorizontalAlignment="Right" Name="label005" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,158" Height="28" HorizontalAlignment="Right" Name="label006" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,186" Height="28" HorizontalAlignment="Right" Name="label007" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,226" Height="28" HorizontalAlignment="Right" Name="label008" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,254" Height="28" HorizontalAlignment="Right" Name="label009" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="1" Content="XXXX" Margin="1,254" Height="28" HorizontalAlignment="Left" Name="lbl1" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="0" Content="XXXX:" Margin="1,282" Height="28" HorizontalAlignment="Right" Name="label010" VerticalAlignment="Top" FontSize="12" /> 
    <Label Grid.Column="1" Content="XXXX" Margin="1,282" Height="28" HorizontalAlignment="Left" Name="lbl2" VerticalAlignment="Top" FontSize="12" /> 
</Grid> 

問題があり、それが消えます。ウィンドウのサイズを大きくすると、中途半端を過ぎているので、もっと小さくなったら消えます。

グリッドに行を追加しようとしましたが、まだ消えています!奇妙な部分は、n行を追加してそれらの間にラベルを分割すると、各行は各行の途中で切り捨てられます。

この問題はデザインビューでも表示されますが、行の高さやウィンドウの最大高さのように垂直方向の制限が課されている場合のみです(デザインビューではすべての内容に合わせてコンテナが引き伸ばされるためです)。

最後に、列は決して小さくなくても途中で消えません。

答えて

2

マージンは「20,50は、」だから50 From MSDN

、マージン「1282に左と20の右のセット、および上下セットで厚 を意味すると解釈されます= "は、" 1,282,1,282 "(左、上、右、下)と同じです。問題を解決する簡単な方法は、すべてのラベルの余白を「X、X、1,0」に変更することです。

各コントロールの位置を制御するために余白を使用していますが、WPFのレイアウトコントロールの添付プロパティを使用して位置を制御することをお勧めします。たとえば、GirdにはGird.RowとGrid.Columnがあり、DockPannelにはDock.TopとDock.Leftなどがあります。この問題については、Use Automatic Layout Overviewを参照してください。

+0

ラベルに左余白と上余白を追加すると問題は解決しました。私が集めたものから、Margin = "i、j"を設定すると、iはHorizo​​ntalAlignmentからのマージンで、jはVerticalAlignmentからのマージンです。私の要素の位置はこれを反映しています。私のポジションが間違っていれば分かりますが、それが正しいので、何が消えてしまうのか分かりません。私は問題を解決したのであなたの答えを受け入れるでしょうが、もっと知りたいです。 – CuddleBunny

+0

ラベルのマージンを1,282,1,282と同じ1,282に設定し、メインウィンドウの高さが282 * 2未満の場合、スペースが足りないためラベルが表示されません。マージンを1,282,1,0に設定すると、ラベルを正しい位置に表示することができます。 Labelの背景を設定して、

+0

のようにラベルの背景を設定することをお勧めします。はるかに感謝、ありがとう! – CuddleBunny

関連する問題