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>

我希望用户控件填充页面。随着页面的扩展,用户控件也随之扩展。这工作正常。但是,我为用户控件指定了最小高度和宽度。如果页面小于此,我希望显示滚动条。但是,当我使页面小于最小尺寸时,不会出现滚动条。

我尝试将用户控件包装在滚动查看器中,但这并没有给我想要的行为。在这种情况下,包含的富文本框现在被完整地绘制,即它不再有任何自己的滚动条。我还是希望富文本框受页面大小的约束,即如果浏览器最大化,富文本框包含100s行文本,我仍然可以看到富文本框的边框,富文本框文本框将具有滚动条以允许查看其内容。当浏览器窗口小于控件的最小大小时,我想要用户控件的滚动条。

这可能吗?

干杯

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 回答