Ваша текущая веб-страница HTML в основном говорит: «Пожалуйста, измените размер моего объекта Silverlight, чтобы он соответствовал 100% размера браузера».
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2"
width="100%" height="100%">
Это означает, что основной объект Silverlight имеет тот же размер, что и браузер.
Необходимо либо добавить полосы прокрутки в приложении Silverlight, либо изменить размер приложения Silverlight, чтобы оно было больше, чембраузер.
Есть несколько способов.
1.Используйте ScrollViewer в корне вашего основного вида
Сначала вы можете просто поместить scrollViewer в качестве самого верхнего контейнера на главной странице Silverlight.Это проще всего, если это работает для вашего конкретного случая.
Вы помещаете Grid в средство просмотра прокрутки так, чтобы вы начинали с той же базовой компоновки, что и без ScrollViewer.
2.Изменение размера объекта Silverlight динамически
Другой способ (очень старый) - динамическое изменение размера размещаемого объекта Silverlight на странице при изменении содержимого страницы.Затем вы получите Web-полосы прокрутки.
Это можно сделать, выполнив вызов Javascript из основного окна XAML.
В конструкторе основного представления перехватите изменение размера:
LayoutRoot.SizeChanged += new SizeChangedEventHandler(LayoutRoot_SizeChanged);
В главном представлении добавьте обработчик событий:
void LayoutRoot_SizeChanged(object sender, SizeChangedEventArgs e)
{
ResizeSilverlightObject(e.NewSize.Height);
}
private void ResizeSilverlightObject(double height)
{
// Now resize the actual Silverlight container to match the layout size
HtmlPage.Window.Invoke("ResizeObject", new object[] { height });
}
Javascript на странице ASPX / HTML хостинга выглядит так:
<script language="javascript" type="text/javascript">
function ResizeObject(height) {
var host = document.getElementById("SilverlightApp");
host.style.height = height + "px";
}
</script>
В приведенном выше JavaScript предполагается, что вы назвали свойОбъект Silverlight с использованием id = "SilverlightApp".например,
<object id="SilverlightApp"
data="data:application/x-silverlight-2,"
type="application/x-silverlight-2"
width="100%" height="100%">
Всякий раз, когда страница Silverlight расширяется, чтобы соответствовать ее содержимому, она изменяет размер веб-объекта Silverlight до того же размера, что и страница.Полосы прокрутки веб-браузера будут работать нормально.