使用Silverlight应用程序中的所有浏览器空间

时间:2012-01-25 17:03:24

标签: silverlight

我目前正在编写一个可以查看文档的Silverlight应用程序。主面板是一个WrapPanel,页面左侧和底部有控件。目前,WrapPanel宽度被设置为能够在一行上显示所有文档页面所需的任何内容,我想更改它以便它将填满浏览器窗口的其余部分,没有水平滚动条

这是我当前的xaml,其中<doc:DocumentViewer x:Name="Viewer"..是有问题的换页面板。

<UserControl x:Class="SilverlightXPSViewer.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"
    xmlns:doc="http://schemas.firstfloorsoftware.com/documenttoolkit"
    mc:Ignorable="d">
    <Grid x:Name="LayoutRoot" Background="White" >
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="40" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="140" />
        </Grid.ColumnDefinitions>     
        <doc:ThumbnailListBox x:Name="Thumbnails"  Grid.Row="0" Grid.Column="0"      DocumentDataSource="{Binding ElementName=DataSource}" PageIndex="{Binding PageIndex,     Mode=TwoWay, ElementName=PageNavigator}"/>
        <doc:DocumentViewer x:Name="Viewer"  Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3"         DocumentDataSource="{Binding ElementName=DataSource}" Width="{Binding ElementName=MainWidth}"/>
        <doc:DocumentDataSource x:Name="DataSource"  Grid.Row="0"    LoadError="DataSource_LoadError" />
        <StackPanel Grid.Column="3" Grid.Row="1" Orientation="Horizontal">
            <doc:PageNavigator x:Name="PageNavigator" Margin="0"
                           PageCount="{Binding PageCount, ElementName=Viewer}"
                           PageIndex="{Binding PageIndex, ElementName=Viewer, Mode=TwoWay}"/>
            <doc:PageNavigator />
        </StackPanel>

        <doc:ViewModePicker Grid.Row="1"  Grid.Column="0" x:Name="Collection"/>
        <Button Width="200" Name="btnZoomIn" Grid.Row="1" Grid.Column="1" Cursor="Hand" Click="btnZoomIn_Click">Zoom In</Button>
        <Button Width="200" Name="btnZoomOut" Grid.Row="1" Grid.Column="2" Cursor="Hand" Click="btnZoomOut_Click">Zoom Out</Button>
    </Grid>
</UserControl>

1 个答案:

答案 0 :(得分:1)

使用System.Windows.Browser.HtmlPage对象从HTML DOM中获取可用的屏幕大小(从而让浏览器告诉您有多少空间)并从中设置控件大小。

这是一个例子:

http://www.jeff.wilcox.name/2008/06/browserscreeninformation/