Высота содержимого веб-браузера Windows Phone 7 - PullRequest
3 голосов
/ 23 мая 2011

Я хочу установить высоту WebBrowser управления динамически, в зависимости от высоты содержимого.

Мой сценарий таков: в этом конкретном представлении у меня есть разные элементы - изображение, MediaElement и т. Д. И между тем форматированным текстом, который представлен в этом элементе управления WebBrowser. Чтобы добиться унифицированной прокрутки, я завернул весь контент в представление прокрутки и отключил прокрутку в элементе управления веб-браузера.

В настоящее время у меня есть метод JavaScript, который вызывается, когда тело завершило загрузку, и отправляет информацию о высоте в C# codebehind, но вычисленная высота неверна.

Мой хак сегодня заключается в умножении возвращаемого значения примерно на 1,75 .

В заголовке страницы есть следующие метатеги:

<meta charset='Windows-1257'>
<meta name='viewport' content='width=device-width' />
<meta name='viewport' content='user-scalable=no' />
<meta name='viewport' content='initial-scale = 1.0' />
<meta name='HandheldFriendly' content='true' />"
<meta name='target-densitydpi=device-dpi' />

Это мой body тег.

<body onLoad="SendDataToPhoneApp()" style="margin:0px;padding:0px;">

Мои JavaScript функции:

<script>
    function getDocHeight() {
        return document.getElementById('pageWrapper').offsetHeight;
    }
    function SendDataToPhoneApp() {
        window.external.Notify('' + getDocHeight());
    }
</script>

pageWrapper - прямой ребенок body.

1 Ответ

4 голосов
/ 27 мая 2011

Попробуйте использовать document.body.clientHeight в вашем Javascript. Также вам может повезти с вашим сценарием, если вы создадите все внутри WebBrowser. Конечно, вы можете помещать изображения в HTML, и вы можете поместить изображение-заполнитель в неподвижном кадре для вашего MediaElement, вызывая обратно в C # и при необходимости вызывая настоящий MediaElement.

...