我有一个用户控件定义如下:
<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>
我希望用户控件填充页面。随着页面的扩展,用户控件也会扩展。这很好用。但是,我为用户控件指定了最小高度和宽度。如果页面小于此,我想要显示滚动条。但是,当我使页面小于最小大小时,不会出现滚动条。
我已经尝试在scrollviewer中包装用户控件,但这并没有给我我想要的行为。在这种情况下,富文本框包含现在完整绘制,即它不再具有自己的任何滚动条。我仍然希望富文本框受页面大小的约束,即如果浏览器最大化并且富文本框包含100行文本,我仍然可以看到富文本框的边框和富文本框文本框将有滚动条以允许查看其contenxt。当浏览器窗口小于控件的最小大小时,我想要用户控件的滚动条。
这可能吗?
干杯
答案 0 :(得分:0)
只需将ScrollViewer包裹在页面上的“Client:UserControl1”周围。
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<<Client:UserControl1 Margin="10"/>
</ScrollViewer>
同时删除对ScrollViewer.HorizontalScrollBarVisibility和ScrollViewer.VerticalScrollBarVisibility的所有其他引用。
干杯