次のように定義されたユーザー コントロールがあります。
<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>
ユーザーコントロールでページを埋めたい。ページが拡大すると、ユーザー コントロールも拡大します。これはうまくいきます。ただし、ユーザー コントロールの最小の高さと幅を指定します。ページがこれよりも小さい場合は、スクロール バーを表示する必要があります。ただし、ページを最小サイズよりも小さくすると、スクロールバーが表示されません。
ユーザーコントロールをスクロールビューアーでラップしようとしましたが、これでは希望する動作が得られません。この場合、含まれるリッチ テキスト ボックスは完全に描画されます。つまり、独自のスクロール バーはなくなります。リッチ テキスト ボックスをページのサイズに制限したい。つまり、ブラウザを最大化し、リッチ テキスト ボックスに数百行のテキストが含まれている場合でも、リッチ テキスト ボックスの境界線とリッチ テキスト ボックスが表示されるテキスト ボックスにはスクロール バーがあり、その内容を表示できます。ブラウザ ウィンドウがコントロールの最小サイズよりも小さい場合、ユーザー コントロールにスクロールバーが必要です。
これは可能ですか?
乾杯