簡體   English   中英

Silverlight頁面內容大小基於瀏覽器大小

[英]Silverlight page content size based on browser size

我得到的是一個包含以下內容的Page類:

<navigation:Page (...) Title="Import">
<Grid x:Name="LayoutRoot">
    <ScrollViewer VerticalScrollBarVisibility="Auto" 
                  HorizontalScrollBarVisibility="Auto"
                  Visibility="{Binding Visible}">
        <c:BusyIndicator IsBusy="{Binding Busy}">
            <StackPanel>
                <StackPanel>
                    <Button/>
                </StackPanel>
                <Border Background="#c8c8c8" CornerRadius="5">
                    <sdk:DataGrid Name="myDataGrid" AutoGenerateColumns="False"
                                  ItemsSource="{Binding Imports}" Margin="10" IsReadOnly="True">
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTextColumn Header="ID" Binding="{Binding ID}" Width=".3*"/>
                            <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" Width=".7*"/>
                        </sdk:DataGrid.Columns>
                    </sdk:DataGrid>
                </Border>
            </StackPanel>
        </c:BusyIndicator>
    </ScrollViewer>        
</Grid>
</navigation:Page>

我試圖完成的工作是,DataGird將始終具有最大可能的寬度和高度。 它的最小寬度和高度也應固定。 當瀏覽器小於DataGrid時,ScrollViewer應該啟用滾動。 我認為“最小/最大寬度/高度”屬性將允許此行為,但我無法使其正常工作。

需要更改標記一針。

StackPanel會擴展到其全部內容,並阻止滾動條可見。 如果在Grid.Row中設置一個值,則網格元素重疊內容。 當您在內容上方設置busyindicator時,這很有用。

<navigation:Page xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="SilverlightApplication1.Page1" 
       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"
       xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
             xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" d:DesignWidth="640" d:DesignHeight="480"
       Title="Page1 Page">
<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition MinHeight="150"/>
    </Grid.RowDefinitions>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button Grid.Row="0"/>
        <Border Grid.Row="1" Background="#c8c8c8" CornerRadius="5">
            <sdk:DataGrid Name="myDataGrid" AutoGenerateColumns="False"
                                  ItemsSource="{Binding Imports}" Margin="10" IsReadOnly="True">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn Header="ID" Binding="{Binding ID}" Width=".3*"/>
                    <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" Width=".7*"/>
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
        </Border>
    </Grid>
    <Controls:BusyIndicator IsBusy="{Binding Busy}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid></navigation:Page>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM