2011-03-09 50 views
0

使用瀏覽器滾動條我試圖讓我的Silverlight應用程序表現得就像佈局任何其他Web應用程序。對Silverlight4應用

我按照this thread展示瞭如何擴大應用時,應用程序比客戶端窗口占用更少的面積,以填補可用空間。

不過,我似乎無法找到的代碼,則正好相反。也就是說,當我的應用程序變得比瀏覽器的客戶區大時,我希望瀏覽器顯示適當的滾動條。目前,上面的代碼只是以瀏覽器的大小剪輯應用程序。

下面是一個簡單的例子應用:

<UserControl x:Class="SilverlightWidthAndHeight.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
    d:DesignHeight="300" d:DesignWidth="400"> 

    <Grid x:Name="LayoutRoot" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions>   

     <Rectangle Grid.Row="0" 
        Fill="Blue" /> 
     <TextBlock Grid.Row="0" 
        Foreground="White" 
        FontSize="20" 
        FontWeight="Bold" 
        Margin="5" 
        Text="Header" /> 

     <Rectangle Grid.Row="1" 
        Fill="Red" /> 

     <StackPanel Grid.Row="1" 
         Orientation="Horizontal"> 
      <TextBlock x:Name="txtMiddleRow" 
          Foreground="White" 
          FontSize="28" 
          Text="Middle Row" /> 

      <Button x:Name="btnGrow" 
         Content="Grow" 
         VerticalAlignment="Center" 
         Margin="5" /> 
     </StackPanel> 


     <Rectangle Grid.Row="2" 
        Fill="Blue" /> 
     <TextBlock Grid.Row="2" 
        Foreground="White" 
        FontSize="20" 
        FontWeight="Bold" 
        Margin="5" 
        Text="Footer" /> 

    </Grid> 
</UserControl> 

正如你所看到的,它填補了空間適當地: Silverlight App Extended

但是,如果我按「成長」按鈕來增加字體大小將TextBlock: Silverlight App Clipped

我知道我可以在一個ScrollViewer中包裹的一切,但它看起來像這樣的黑客馬上有一個滾動條的左邊瀏覽器滾動條。

感謝,
WTS

+0

什麼只是隱藏瀏覽器滾動條?然後你可以使用SL scrollviewer,或者其他什麼。 – 2012-04-24 15:58:06

回答

0

你所要求的是Silverlight來調整自身。這將需要你做很多工作。您需要編寫知道您的應用何時變大的代碼,並且它會縮放持有Silverlight應用的html對象。

例如,在layoutroot的layoutchange設置一個事件,然後設置從代碼的Silverlight應用程序的高度屬性。看看如何處理HTML和Silverlight的here調用JavaScript。