У меня есть div, который содержит тег объекта Silverlight. Исходя из кода некоторых действий пользователя (нажмите на кнопку), я расширяю окно браузера Div до общего. Я делаю это через Jquery addClass и Remove class. В этих классах разница в абсолютной позиции, ширине по высоте 100% и увеличенном z-индексе.
Хорошо работает в Ie7 и IE8. Но во время работы через FF он перезагружает Xap при этом. В чем может быть причина? а какое решение?
Спасибо.
Редактировать: После некоторого расследования кажется, что причина в том, что позиция: абсолютная. Изменение положения с относительного на абсолютное создает проблему. Также, как только я перехожу из нормального режима в полноэкранный режим, то в нормальный режим. Затем его расширение не загружает его дважды.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
SilverlightApplication1
<style type="text/css">
.slhost
{
width: 642px;
height: 500px;
position: relative;
}
.bigsl
{
width: 100%;
height: 100%;
position: absolute;
}
</style>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function openOverlay() {
$("#silverlightControlHost").addClass("bigsl");
$("#silverlightControlHost").removeClass("slhost");
}
function closeOverlay() {
$("#silverlightControlHost").removeClass("bigsl");
$("#silverlightControlHost").addClass("slhost");
}
</script>
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
< Grid x:Name="LayoutRoot" Background="Red" MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown">
</Grid>
using System.Windows;
с использованием System.Windows.Controls;
использование System.Windows.Input;
использование System.Windows.Browser;
пространство имен SilverlightApplication1
{
открытый частичный класс MainPage: UserControl
{
public MainPage ()
{
InitializeComponent ();
Deployment.Current.Dispatcher.BeginInvoke (() => HtmlPage.Window.Alert («Приложение загружено»));
} * * Тысяча двадцать-один
private bool _flip;
private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (_flip)
{
Deployment.Current.Dispatcher.BeginInvoke(() => HtmlPage.Window.Invoke("closeOverlay", null));
}
else
{
Deployment.Current.Dispatcher.BeginInvoke(() => HtmlPage.Window.Invoke("openOverlay", null));
}
_flip = !_flip;
}
}
}