2011-07-20 10 views
0

次のXAMLで、テキストブロックのスタックパネルを表示します。メイングリッドサイズのため、スタックパネルの最後の数アイテムが自然に切り取られます。しかし、スタックパネルの親グリッド(メイングリッドではない)を垂直方向に変換すると、スタックパネルの内容は、項目を最下部に表示する代わりにクリップされてしまいます。スタックパネルの下部の内容をクリッピングせずに、グリッド上で垂直方向の平行移動を実行するにはどうすればよいですか?グリッドコンテンツのWPFクリッピングを防止します。

ビューボックスは重要です。最初のグリッドは、メインウィンドウまたはモニタの最大高さに合わせる必要があるため、重要です。

<Window x:Class="WpfApplication5.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow"> 
    <Viewbox> 
     <Grid Width="500" Height="888" Background="#cccccc"> 
      <Grid Background="#cc99cc"> 
       <Grid.RenderTransform> 
        <TranslateTransform Y="-800"/> 
       </Grid.RenderTransform> 
       <StackPanel> 
        <TextBlock Text="This is a test 1" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 2" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 3" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 4" FontSize="50" Foreground="Orange"/> 
        <TextBlock Text="This is a test 5" FontSize="50" Foreground="Yellow"/> 
        <TextBlock Text="This is a test 6" FontSize="50" Foreground="Purple"/> 
        <TextBlock Text="This is a test 7" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 8" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 9" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 10" FontSize="50" Foreground="Orange"/> 
        <TextBlock Text="This is a test 11" FontSize="50" Foreground="Yellow"/> 
        <TextBlock Text="This is a test 12" FontSize="50" Foreground="Purple"/> 
        <TextBlock Text="This is a test 13" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 14" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 15" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 16" FontSize="50" Foreground="Orange"/> 
       </StackPanel> 
      </Grid> 
     </Grid> 
    </Viewbox> 
</Window> 

答えて

1

GridのHeightプロパティを取り出してください。

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     x:Name="Wind1" 
     Title="MainWindow"> 
    <Viewbox> 
     <Grid Width="500" Background="#cccccc"> 
      <Grid Background="#cc99cc"> 
       <Grid.RenderTransform> 
        <TranslateTransform Y="-800"/> 
       </Grid.RenderTransform> 
       <StackPanel x:Name="stack1"> 
        <TextBlock Text="This is a test 1" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 2" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 3" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 4" FontSize="50" Foreground="Orange"/> 
        <TextBlock Text="This is a test 5" FontSize="50" Foreground="Yellow"/> 
        <TextBlock Text="This is a test 6" FontSize="50" Foreground="Purple"/> 
        <TextBlock Text="This is a test 7" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 8" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 9" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 10" FontSize="50" Foreground="Orange"/> 
        <TextBlock Text="This is a test 11" FontSize="50" Foreground="Yellow"/> 
        <TextBlock Text="This is a test 12" FontSize="50" Foreground="Purple"/> 
        <TextBlock Text="This is a test 13" FontSize="50" Foreground="Blue"/> 
        <TextBlock Text="This is a test 14" FontSize="50" Foreground="Red"/> 
        <TextBlock Text="This is a test 15" FontSize="50" Foreground="Green"/> 
        <TextBlock Text="This is a test 16" FontSize="50" Foreground="Orange"/> 
       </StackPanel> 
      </Grid> 
     </Grid> 
    </Viewbox> 
</Window> 
関連する問題