سؤال

لقد قمت بإنشاء تطبيق Silverlight بسيط لعرض بعض النص في الوقت الحقيقي من XML. عرض النص باستخدام علامة HTML DIV. لقد أضفت خاصية البرنامج الإضافي بدون نوافذ = صحيح ، enableHtmLaccess = صحيح ، الخلفية = شفافة.

على Silverlight أضفت زر "يكمل"في أعلى وأسفل ، والذي يعرض بعض الرسائل على تلك النقر.

Silverlight Plugin تغيير حجمه في محتويات XML.

رمز بلدي :

mainpage.xaml:

<Grid x:Name="LayoutRoot">
        <StackPanel HorizontalAlignment="Right" VerticalAlignment="Top">
            <Button x:Name="topContinue" Content="Continue" Margin="0,30,30,0" Click="Continue_Click"></Button>
        </StackPanel>
        <StackPanel HorizontalAlignment="Right" VerticalAlignment="Bottom">
            <Button x:Name="bottomContinue" Content="Continue" Margin="0,0,30,30" Click="Continue_Click"></Button>
        </StackPanel>
</Grid>

mainpage.xaml.cs:

إنشاء HTML DIV في التطبيق ابدأ باستخدام:

HtmlDocument _document = HtmlPage.Document;
HtmlElement iDIV = _document.CreateElement("DIV");
iDIV.SetAttribute("id", "divHTMLViewer");
iDIV.SetStyleAttribute("position", "absolute");
iDIV.SetStyleAttribute("z-index", "1");
iDIV.SetStyleAttribute("display", "INLINE");
iDIV.SetStyleAttribute("top", "100px");
iDIV.SetStyleAttribute("height", "0px");
iDIV.SetStyleAttribute("width", "96%");
iDIV.SetStyleAttribute("left", "15px");
iDIV.SetStyleAttribute("text-align", "justify");

HtmlElement body = _document.GetElementsByTagName("BODY")[0] as HtmlElement;
body.RemoveChild(iDIV);
body.AppendChild(iDIV);

اضبط نص XML:

HtmlElement divHTMLViewer = HtmlPage.Document.GetElementById("divHTMLViewer");
sText = sText.Replace("&lt;", "<").Replace("&gt;", ">");
divHTMLViewer.SetStyleAttribute("display", "none");
divHTMLViewer.SetStyleAttribute("width", "96%");
divHTMLViewer.SetStyleAttribute("top", "100px");
divHTMLViewer.SetStyleAttribute("left", "15px");
divHTMLViewer.RemoveStyleAttribute("color");
divHTMLViewer.RemoveStyleAttribute("fontSize");
divHTMLViewer.SetProperty("innerHTML", sText);
divHTMLViewer.SetStyleAttribute("display", "INLINE");
setSilverlightControlHeight(UILAYOUT.INSTRUCTIONS);

رمز زيادة حجم المكون الإضافي Silverlight:

isilverlightControlHost.SetStyleAttribute("height", HtmlPage.Window.Eval("document.documentElement.scrollHeight").ToString() + "px");
isilverlightControlHost.SetStyleAttribute("position", "absolute");

كل هذه التعليمات البرمجية تعمل بشكل جيد في Internet Explorer و Crome & Safari ولكن "يكمل"غير مرئي في Firefox فقط.

فهل هناك أي مشكلة في هذا الرمز؟

عينة الكود:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewersilverlight.zip

عينة العمل: فقط استبدل ".zip" بـ "testpage.html" في عنوان URL أعلاه.

واسمحوا لي أن أعرف كيف يمكنني حلها؟

شكرا مقدما ، لاكسميلال ميناريا

هل كانت مفيدة؟

المحلول

لقد ألقيت نظرة على الكود الخاص بك وكما أظن أنه ليس Silverlight ، يبدو أن هذا هو المشكلة ولكن أكثر تنفيذ CSS ضمن المتصفحات المختلفة.

لجعل هذا العمل في كلا المتصفحين إما تحتاج إلى إزالة السطر التالي من التعليمات البرمجية:

isilverlightControlHost.SetStyleAttribute("position", "absolute");

أو قم بتعديل الكود بحيث يتم تجاهل سمة نمط الموضع بواسطة Firefox:

isilverlightControlHost.SetStyleAttribute("position", "absolute !important");

لقد جربت هذا على الجهازي باستخدام IE8 و FF3.6.12 و يكمل الأزرار مرئية في كلاهما عند تغيير خط الرمز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top