Как "закрепить" элемент управления Silverlight - PullRequest
1 голос
/ 04 декабря 2008

Есть ли способ "прикрепить" элемент управления Silverlight к окну браузера? Например, я хотел бы иметь заголовок HTML вверху страницы, а затем чтобы элемент управления Silverlight занимал точно остальную часть окна, аккуратно изменяя размер при каждом изменении размера окна.

Страница по умолчанию, которую создает Visual Studio, использует стили с шириной и высотой 100%, чтобы элемент управления Silverlight занимал все окно. И я могу легко изменить этот шаблон, чтобы разделить страницу на проценты (скажем, 20% заголовка HTML и 80% контроля Silverlight). Но я действительно хочу, чтобы высота заголовка была статичной, а элемент управления Silverlight занимал 100% оставшегося окна.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2008

Вот решение в JavaScript. Сначала вы создаете эту функцию:

<script type="text/javascript">
    function resizeSLHost()
    {
        var docHeight = document.body.offsetHeight;
        var pluginHeight = docHeight - 130;
        var slplugin = document.getElementById("silverlightControlHost");
        slplugin.style.height = pluginHeight + "px";
    }
</script>

Затем в открывающем теге body вы говорите:

<body onload="resizeSLHost()" onresize="resizeSLHost()">

И вы помещаете свой заголовок div прямо перед div хоста Silverlight:

<div id="header" style="height:130px"></div>
<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2" type="application/x-silverlight-2" width="100%" height="100%">
        // the usual stuff here...
    </object>
    <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

Конечно, число, которое вы вычитаете из docHeight в resizeSLHost (), должно быть равно высоте заголовка div.

Это работало для меня в IE 7 и Firefox 3.0.4. *

2 голосов
/ 04 декабря 2008

У вас должна быть возможность использовать CSS для этого. Просто сделайте заголовок DIV нужного размера, а затем контейнер DIV для элемента Silverlight будет равен 100% / 100%

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...