我有一个这样定义的用户控件:
<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>
我希望用户控件填充页面。随着页面的扩展,用户控件也随之扩展。这工作正常。但是,我为用户控件指定了最小高度和宽度。如果页面小于此,我希望显示滚动条。但是,当我使页面小于最小尺寸时,不会出现滚动条。
我尝试将用户控件包装在滚动查看器中,但这并没有给我想要的行为。在这种情况下,包含的富文本框现在被完整地绘制,即它不再有任何自己的滚动条。我还是希望富文本框受页面大小的约束,即如果浏览器最大化,富文本框包含100s行文本,我仍然可以看到富文本框的边框,富文本框文本框将具有滚动条以允许查看其内容。当浏览器窗口小于控件的最小大小时,我想要用户控件的滚动条。
这可能吗?
干杯