У меня есть приложение silverlight, которое я хочу разрешить размер, как обычная HTML-страница. То есть, я хочу, чтобы размер плагина silverlight расширялся и сокращался по высоте, чтобы разместить динамические данные и элементы управления, которыми я заполняю приложение silverlight. Итак, скажем, у меня есть страница с сеткой и кнопка. Пользователь нажимает кнопку, и сетка получает кучу строк с изображениями, делающими естественный размер сетки выше, чем окна браузера. Я хотел бы иметь что-то на месте, чтобы изменить размер плагина silverlight, чтобы удовлетворить желаемый размер сетки. Далее, и некоторые другие попытки, не работают:Silverlight с динамической высотой
// 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 всегда хочет быть размер окна. Арг сказал пирату. не
-r
В этом случае плагин silverlight не подходит для размещения контента. В случае, когда мой контент больше, чем окно браузера, я бы хотел, чтобы плагин серебристого цвета, если необходимо, за границы окна браузера, чтобы отображать полосы прокрутки. В вашем примере плагин масштабируется с окном браузера, а не с содержимым silverlight. – ptoinson
Я вижу, это поднимает старый вопрос о том, кто должен отвечать за прокрутку браузера? или Silverlight? Я обнаружил, что гораздо проще обрабатывать прокрутку содержимого из Silverlight. Именно поэтому я использую вышеуказанный контейнер HTML, чтобы гарантировать, что только элемент управления Silverlight выполняет прокрутку.Если вы этого не сделаете, вы можете столкнуться с гнусным сценарием с двойной полосой прокрутки. – markti
К сожалению, я хочу использовать режим без окон для silverlight, который не позволяет захватить мышь вне плагина. Использование прокрутки Silverlight здесь является ошибкой. – ptoinson