У меня есть приложение silverlight, которое я хочу разрешить для размера, как обычная HTML-страница. То есть я хочу, чтобы размер плагина silverlight расширялся и сжимался по высоте, чтобы вместить динамические данные и элементы управления, которыми я заполняю приложение silverlight. Итак, скажем, у меня есть страница с сеткой и кнопка. Пользователь нажимает кнопку, и сетка получает ряд строк с изображениями, делая естественный размер сетки выше, чем в окнах браузера. Я хотел бы иметь что-то на месте, чтобы изменить размер плагина silverlight, чтобы он соответствовал DesiredSize of Grid. Следующие и несколько других попыток не работают:
// handler in my main page.
void MainGrid_LayoutUpdated(object sender, EventArgs e)
{
HtmlPage.Window.Invoke("setSilverlightSize", this.MainGrid.DesiredSize.Height);
}
<body style="height:100%;margin:0;">
<form id="mainForm" runat="server" style="height:100%;">
<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
<div id="SilverlightContainer" style="height:100%;">
<asp:Silverlight ID="SLMain" runat="server" Source="~/ClientBin/My.Silverlight.Main.xap" Version="2.0" Width="100%" Height="100%" />
</div>
</form>
<script type="text/javascript">
function setSilverlightSize(val) {
var host = document.getElementById("SilverlightContainer");
host.style.height = val + "px";
}
</script>
</body>
Желаемый размер MainGrid всегда хочет быть размером окна. Argh сказал пират.
-r