2012-07-17 23 views
0

我得定義爲這樣的用戶控件:用於在Silverlight用戶控制滾動條

<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行文本,我仍然可以看到富文本框的邊框,而富文本框文本框將有滾動條以允許查看其內容。當瀏覽器窗口小於控件的最小大小時,則需要用戶控件的滾動條。

這可能嗎?您的網頁上:

乾杯

回答

0

只是包裝一個ScrollViewer中圍繞 「客戶端的UserControl1」。

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

而且消除對ScrollViewer.Horizo​​ntalScrollBarVisibility和ScrollViewer.VerticalScrollBarVisibility所有其他引用。

乾杯