Silverlight 4.0 主页上的H192像素屏障

Silverlight 4.0 主页上的H192像素屏障,silverlight-4.0,sdk,Silverlight 4.0,Sdk,这是一个间歇性的问题,应用程序顶部的192个像素可以完美地绘制和工作,但浏览器下面的所有像素都是白色的,不会对单击做出响应 这大约在一个月前开始,但直到今天才在开发机器上发生。在测试服务器上,不同的浏览器在不同的时间出现这种情况,但在Firefox、Chrome和IE8上失败的次数要比在IE7上多得多。有时浏览器的整个客户端区域是白色的,而不仅仅是192像素以下的部分;我假设这是一个相关的问题,但我不确定 在今天的开发机器上,它在IE的Visual Studio内部浏览器和IE 8和FF上都失败

这是一个间歇性的问题,应用程序顶部的192个像素可以完美地绘制和工作,但浏览器下面的所有像素都是白色的,不会对单击做出响应

这大约在一个月前开始,但直到今天才在开发机器上发生。在测试服务器上,不同的浏览器在不同的时间出现这种情况,但在Firefox、Chrome和IE8上失败的次数要比在IE7上多得多。有时浏览器的整个客户端区域是白色的,而不仅仅是192像素以下的部分;我假设这是一个相关的问题,但我不确定

在今天的开发机器上,它在IE的Visual Studio内部浏览器和IE 8和FF上都失败了,但在Chrome下工作

详情如下:

Silverlight 4、带有RIA服务的实体框架4和VS 2010。 在调试器中使用断点,我看到MainPage的实际高度变为192像素。 如果我手动将MinHeight或Height设置为1000像素,那么调试器中的实际高度将为1000,但低于192像素的所有内容仍然是白色。 ActualHeight为0,直到MainPage的构造函数返回后,调试器显示其ActualHeight为192。 构造函数只包含一条语句-InitializeComponent; 我将主页的背景色设置为绿色,192以下的内容仍然是白色。 主页的内容周围有一个边框。边框看起来很正常,只是底部被截断了,所以192像素以下的所有东西都是白色的。 我已经删除了主页的大部分内容并修改了代码,这样只有应用程序启动时才包含这个。RootVisual=新主页;和仅包含InitializeComponent的主页面构造函数;我们称之为。我还使用断点和单步执行在调试器中验证了没有执行任何其他操作。问题仍然像以前一样发生。 有人能建议修复或进一步诊断吗?提前谢谢

DEFAULT.ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="iVG.Web.Default" %>
<!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 id="Head1" runat="server">
    <title>iVoterGuide.com</title>
    <style type="text/css">
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    #silverlightControlHost {
        height: 100%;
        text-align:center;
    }
    </style>
    <script type="text/javascript" src="Silverlight.js"></script>
    <script type="text/javascript">
        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
                appSource = sender.getHost().Source;
            }

            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {
                return;
            }

            var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }
        function CloseMainWindow(x) {
            window.close();
        }
    </script>
</head>
<body onload="document.getElementById('SilverlightControl').focus();">
    <form id="form1" runat="server"> <%--style="height:100%"--%>
    <div id="silverlightControlHost">
        <object id="SilverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/iVG.xap"/>
          <param name="enableHtmlAccess" value="true" />
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50401.0" />
          <param name="autoUpgrade" value="true" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.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>
MAINPAGE.XAML

<Grid x:Name="LayoutRoot" Style="{StaticResource GridRoot}" Background="Green" Loaded="LayoutRoot_Loaded">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid Style="{StaticResource GridMenu}" Grid.Row="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Sticky:Tab x:Name="TabMenu" DisplayMemberPath="Text" Style="{StaticResource MainTabMenu}" Grid.Column="1" SelectionChanged="TabMenu_SelectionChanged" Margin="0"/>
    </Grid>
    <Grid Grid.Row="1">
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top">
            <TextBlock FontSize="{StaticResource FontSizeSmall}" VerticalAlignment="Center" Foreground="Black" x:Name="BlockSignedIn"/>
        </StackPanel>
        <Border x:Name="BorderContent" Style="{StaticResource BorderContent}">
            <Grid HorizontalAlignment="Stretch">
                <TextBlock Margin="0,-6,-2,0" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="{StaticResource FontSizeSmall}" Foreground="Black" x:Name="BlockTimestamp"/>
                <StackPanel>
                    <Border Style="{StaticResource BorderPageHeader}">
                        <TextBlock x:Name="BlockHeader" Style="{StaticResource BlockPageHeader}" Text=""/>
                    </Border>
                    <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrame}" MinHeight="300" Navigating="ContentFrame_Navigating"
                            Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
                        <navigation:Frame.UriMapper>
                            <sdk:UriMapper>
                                <sdk:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
                            </sdk:UriMapper>
                        </navigation:Frame.UriMapper>
                    </navigation:Frame>
                    <Grid Height="5"/>
                    <Border Style="{StaticResource BorderPageFooter}">
                        <TextBlock x:Name="BlockVersion"/>
                    </Border>
            </StackPanel>
            </Grid>
        </Border>
        <Grid  Visibility="Collapsed" VerticalAlignment="Top" Background="Red" x:Name="GridDebug">
            <TextBlock Text="DEBUG" FontWeight="Bold" Foreground="White" Margin="2"/>
        </Grid>
    </Grid>
</Grid>

我让它工作起来了,虽然我不知道为什么。在Default.aspx页面下面的行中,我更改了 高度=100% 到 高度=2000

<object id="SilverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
如果忽略了高度或它是自动的,它仍然不起作用。如果高度太大(例如5000),它也会以不同的方式失效