代码之家  ›  专栏  ›  技术社区  ›  grenade

具有自动宽度和高度的Silverlight栅格

  •  4
  • grenade  · 技术社区  · 15 年前

    这里是Silverlight virgin。如何使网格周围的用户控件自动调整大小以适应内部网格宽度?当前,当浏览器窗口更宽时,usercontrol显示为大约300或400像素。它会在丑陋的数据网格周围呈现垂直和水平滚动条。我想将控件宽度设置为“100%”,但这似乎不受支持。我错过了什么?

    以下是我目前的xaml:

    <UserControl x:Class="RichMedia.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:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
        <Grid x:Name="LayoutRoot" Background="White">
            <data:DataGrid Name="dataGrid1" AutoGenerateColumns="False"
                HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                DataContext="{Binding}" />
        </Grid>
    </UserControl>
    

    以下是托管页面中的标记:

    <%@ Page Language="C#" AutoEventWireup="true" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
        <head runat="server">
            ...
            <style type="text/css">
                html, body { height: 100%; overflow: hidden; }
                body { padding: 0; margin: 0; }
                html, body { height: 100%; overflow: hidden; }
                #silverlightControlHost { height: 100%; text-align:center; }
            </style>
            <script type="text/javascript" src="Scripts/Silverlight.js"></script>
            ...
        </head>
        <body>
            <form id="form1" runat="server" style="height:100%">
                <div id="silverlightControlHost">
                    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
                        <param name="source" value="ClientBin/RichMedia.xap"/>
                        <param name="onError" value="onSilverlightError" />
                        <param name="background" value="white" />
                        <param name="minRuntimeVersion" value="3.0.40818.0" />
                        <param name="autoUpgrade" value="true" />
                        <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none"><img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/></a>
                    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
            </form>
        </body>
    </html>
    
    1 回复  |  直到 15 年前
        1
  •  5
  •   AnthonyWJones    15 年前

    您需要将宽度:100%和高度:100%放置在HTML中对象标记的样式中。您还需要确保包含元素(可能是主体)具有视图端口的高度。这是通过确保样式“高度:100%;溢出:隐藏位于html标记和body标记上。将边距:0px放在正文上,并将属性scroll=“no”也放在正文上,以便更好地测量。现在,Silverlight控件拥有浏览器客户端窗口区域的大小。

    同时从用户控件中删除Width=“Auto”和Height=“Auto”。