0

次のように定義されたユーザー コントロールがあります。

<UserControl
x:Class="Client.UserControl1"
d:DesignWidth="640" d:DesignHeight="480" MinWidth="400" MinHeight="400"                 
    ScrollViewer.HorizontalScrollBarVisibility="Auto"
    ScrollViewer.VerticalScrollBarVisibility="Auto">

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="24"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <RichTextBox Margin="10" Grid.Row="1" HorizontalScrollBarVisibility="Auto">
        <Paragraph><Run Text="RichTextBox"/></Paragraph>
    </RichTextBox>
    <sdk:Label Margin="0" Height="24" HorizontalAlignment="Center"    
      Content="Message"/>
 </Grid>
 </UserControl>

次に、このコントロールをページで次のように使用します。

<navigation:Page 
Style="{StaticResource PageStyle}" ScrollViewer.HorizontalScrollBarVisibility="Auto" 
ScrollViewer.VerticalScrollBarVisibility="Auto">

<Grid x:Name="LayoutRoot" Background="Blue" 
 ScrollViewer.HorizontalScrollBarVisibility="Auto" 
 ScrollViewer.VerticalScrollBarVisibility="Auto">
    <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
            <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Client:UserControl1 Margin="10"/>
</Grid>
</navigation:Page>

ユーザーコントロールでページを埋めたい。ページが拡大すると、ユーザー コントロールも拡大します。これはうまくいきます。ただし、ユーザー コントロールの最小の高さと幅を指定します。ページがこれよりも小さい場合は、スクロール バーを表示する必要があります。ただし、ページを最小サイズよりも小さくすると、スクロールバーが表示されません。

ユーザーコントロールをスクロールビューアーでラップしようとしましたが、これでは希望する動作が得られません。この場合、含まれるリッチ テキスト ボックスは完全に描画されます。つまり、独自のスクロール バーはなくなります。リッチ テキスト ボックスをページのサイズに制限したい。つまり、ブラウザを最大化し、リッチ テキスト ボックスに数百行のテキストが含まれている場合でも、リッチ テキスト ボックスの境界線とリッチ テキスト ボックスが表示されるテキスト ボックスにはスクロール バーがあり、その内容を表示できます。ブラウザ ウィンドウがコントロールの最小サイズよりも小さい場合、ユーザー コントロールにスクロールバーが必要です。

これは可能ですか?

乾杯

4

1 に答える 1

0

ページの「Client:UserControl1」の周りに ScrollViewer をラップするだけです。

<ScrollViewer HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">
  <<Client:UserControl1 Margin="10"/>
</ScrollViewer>

ScrollViewer.Horizo​​ntalScrollBarVisibility および ScrollViewer.VerticalScrollBarVisibility への他のすべての参照も削除します。

乾杯

于 2012-07-17T15:02:37.527 に答える