• 0
ryco

فراخوانی فونت از لوکال در وب ویو

سوال

سلام؛

من می خوام از فونت یکان، برای نمایش متون در وب ویو برنامه استفاده کنم. متاسفانه از هر روشی رفتم، موفق نشدم. این کلاسی هست که برای این کار نوشتم:

 class WebContentHelper
    {
        public static string HtmlHeader() //adapt parametres
        {
            var head = new StringBuilder();
            head.Append("<head>");

            head.Append("<meta name=\"viewport\" content=\"initial-scale=1, maximum-scale=1, user-scalable=0\"/>");
            head.Append("<script type=\"text/javascript\">" +
                "document.documentElement.style.msScrollTranslation = 'vertical-to-horizontal';" +
                "</script>"); //horizontal scrolling
                              //head.Append("<meta name=\"viewport\" content=\"width=720px\">");
            head.Append("<style>");
            head.Append("@font-face {" +
                "font-family: 'yekan'" +
                " url('/other/yekan.ttf') format('ttf');" +
                "}" +
                "h1, h2, h3, h4, h5, h6, p{font-family:yekan;}" +
                "p{font-size{15px;}" +
                "h1{font-size:25px;}");
            head.Append("html { -ms-text-size-adjust:150%;}");
            head.Append(string.Format("body {{background:white;color:black;font-size:15px;margin:20;padding:0;display: block;" +
            "height: 100%;" +
            "overflow-x: scroll;" +
            "position: relative;" +
            "width: 100%;" +
            "z-index: 0;}}" +
            "article{{column-fill: auto;column-gap: 80px;column-width: auto; column-height:100%; height:630px;" +
            "}}" +
            "img,p.object,iframe {{ max-width:100%; height:auto }}"));
            head.Append(string.Format("a {{color:blue}}"));
            head.Append("</style>");

            // head.Append(NotifyScript);
            head.Append("</head>");
            return head.ToString();
        }
        public static string WrapHtml(string htmlSubString)
        {
            var html = new StringBuilder();
            html.Append("<html>");
            html.Append(HtmlHeader());
            html.Append("<body><article class=\"content\">");
            html.Append("<p dir=\"rtl\" align=\"right\">");
            html.Append(htmlSubString);
            html.Append("</p>");
            html.Append("</article></body>");
            html.Append("</html>");
            return html.ToString();
        }
    }

متن دلخواه رو باید به متد WrapHtml بدم و بعد در وب ویو به نمایش بذارم:

string Content =  WebContentHelper.WrapHtml(value);
            myView.NavigateToString(Content);

نمیدونم مشکل چی هست!!

اگر کسی عیبی در کدهای من می بینه بفرماید!! ;)

پسند شده توسط 1 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تا کنون داده شده است

  • 0

سلام،

وقت بخیر،

تا جایی که من میدونم اسم فونت یکان B Yekan هست نه Yekan!

برای استفاده از فونت ها یا هر چیزی که داخل خود پروژه هست، باید مقدار ms-appx:/// را قبل از آدرس اون بنویسیم.

مثلا شما نوشتی:

head.Append("@font-face {" +
"font-family: 'yekan'" +
" url('/other/yekan.ttf') format('ttf');" +
"}" +
"h1, h2, h3, h4, h5, h6, p{font-family:yekan;}" +
"p{font-size{15px;}" +
"h1{font-size:25px;}");

که اینجا باید yekan ها به B Yekan و /other/yekan.ttf به ms-appx:///other/yekan.ttf تغییر نام پیدا کنن.

نکته: من برای فونت یکان پوشه other رو توی روت پروژه ام ساختم.

پس کد بالا میشه:
 

            head.Append("@font-face {" +
                "font-family: 'B Yekan'" +
                " url('ms-appx:////other/yekan.ttf') format('ttf');" +
                "}" +
                "h1, h2, h3, h4, h5, h6, p{font-family:B Yekan;}" +
                "p{font-size{15px;}" +
                "h1{font-size:25px;}");

Capture.PNG

فونت یکان پیوست شد.

موفق باشید.

 

yekan.zip

پسند شده توسط 1 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر


مهمان
این موضوع برای عدم ارسال قفل گردیده است.