我在使Silverlight控件以与浏览器一样宽但需要的时间范围内显示在页面上的方式遇到问题.
我似乎无法确定启用此功能的CSS.我得到的最接近的结果是使Silverlight控件与浏览器一样高,但没有更高.以下是我的aspx文件:
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls"
TagPrefix="asp" %>
<!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" style="height: 100%;">
<head runat="server">
<style type="text/css">
body
{
padding: 0px;
text-align: center;
background-color: #22395C;
}
#Content
{
width: 100%;
height: 100%;
text-align: left;
}
.Header
{
width: 100%;
height: 25px;
clear: both;
}
</style>
</head>
<body style="height: 100%;">
<form id="form1" runat="server" style="height: 100%;">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div class="Header"></div>
<div id="Content">
<asp:Silverlight ID="Xaml1" runat="server"
Source="~/ClientBin/....xap"
MinimumVersion="2.0.31005.0"
InitParameters="VideoId=11"
Width="100%" Height="100%"
BackColor="Transparent"
PluginBackground="Transparent"
Windowless="true"/>
</div>
<div class="Header"> </div>
</form>
</body>
</html>
最佳答案
如果您的Silverlight应用程序的高度是动态的,并且您需要在浏览器窗口中动态调整它的空间大小,那么最好的选择就是HTML Interop api.您可以创建一个以高度为参数的JavaScript函数,并将#Content div的高度设置为该值.然后,在加载页面时,使用System.Windows.Browser.HtmlPage.Window.Invoke静态方法从Silverlight调用此JS函数.
原文链接:https://www.f2er.com/html/530559.html类似以下内容可能会起作用:
在客户身上
function setContentHeight(height) {
var content = document.getElementById("Content");
if (content != null) {
content.style.height = height;
}
}
…在银光下…
void Page_Loaded(object sender,RoutedEventArgs e)
{
HtmlPage.Window.Invoke("setContentHeight",this.Height);
}