نمایش نتایج 1 تا 2 از 2

نام تاپیک: نمایش فایل های متنی شامل عکس در WPF به حالت فقط خواندنی

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    دیار نصف جهان
    پست
    43

    نمایش فایل های متنی شامل عکس در WPF به حالت فقط خواندنی

    سلام به همه دوستان اول از همه به طرح مسئله می پردازیم . اگر بخواهیم متونی که در نرم افزار word تولید میشه که شامل عکس, bullet و دیگر امکانات متنی می شود را در پروژه WPF خود نمایش دهیم به طوری که متن فقط خواندنی باشد و امکان رایت کلیک وجود نداشته باشد راه حل های متنوعی در پیش رو داریم
    1) استفاده از کامپوننت های خود WPF مانند flowDocument,documentViewer, ... کار با این ابزارها ساده است ولی عیبی که دارند این است که بایستی متن و عکس و دیگر تنظیمات را خودمان وارد کنیم. در ضمن متن وارد کد xaml می شود و زمانی که متن طولانی با تنظیمات متنوعی داشته باشیم این روش اصلا بهینه نیست. ولی امکانات خوب این ابزارها در مواقعی که متن کوتاه است بسیار کاربردی می باشد. در ضمن این امکان وجود دارد که منوی رایت کلیک را برای این ابزارها تغییر دهید و متن را در حالت فقط خواندنی نمایش دهید.
    2) استفاده از webbrowser: در این روش بایستی متن مورد نظر خود را در فرمت html ذخیره نمایید و این متن را همراه با پوشه عکس های مربوط به آن به پروژه اضافه نمایید و سپس با قرار دادن یک webbrowser روی صفحه و آدرس دهی به آن از طریق دستور زیر متن را در این کامپوننت نمایش دهید webBrowser1.Navigate(new Uri("pack://siteoforigin:,,,/docs/test.htm")); که test.htm نام صفحه وب ماست که در پوشه docs در کنار فایل اجرایی پروژه قرار گرفته است در این روش امکانات خوبی از جمله حرکت بین صفحات و یا رفتن به صفحه اول وجود دارد ولی امکان قرار دادن متن در حالت فقط خواندنی وجود ندارد و کاربر می تواند با رایت کلیک کردن روی آن متن را کپی کند( البته امکان غیر فعال کردن منوی رایت کلیک از طریق اسکریپت نویسی در سورس خود وب امکان دارد ولی این کار منجر به این می شود که نوار notification که نوار زرد رنگی است در بالای متن ظاهر شود و تا زمانی که کاربر اجازه استفاده از اسکریپت را ندهد منوی رایت کلیک فعال باقی می ماند) پس در نتیجه این روش هم پاسخگوی ما نیست
    3) ذخیره متن در فرمت XPS و نمایش آن در یک DocumentViewer . فرمت XPS در ابتدا برای ویندوز ویستا طراحی شد و تمامی فایل های تولید شده در مجموعه office قابل تبدیل شدن به این فرمت را دارند. و فایل با این پسوند امکان نمایش در کامپوترهایی را که office روی آن ها نصب نیست را دارند در ضمن این فرمت در اینترنت اکسپلورر 7 هم قابل نمایش است. برای تبدیل یک فایل متنی به این فرمت بایستی add_on مربوطه را برای office اضافه کنید. به این صورت:
    ابتدا فایل SaveAsXPS.exe را از سایت مایکروسافت دریافت نمایید سپس آن را نصب کنید. سپس در منوی save As در پنجره Word گزینه Save as pdf or XPS را انتخاب نمایدو پس از تعیین خروجی ان را ذخیره نمایید. بعد آن را به پروژه خود اضافه کنید.
    برای نمایش این نوع متون نیاز به اضافه کردن رفرنس ReachFramework.dll داریم. آن را به شکل زیر اضافه می کنیم.
    سپس کد زیر را به برنامه اضافه می کنیم
    using System.Windows.Xps.Packaging;

    بعد روی فرم خود یک DocumentViewer قرار می دهیم و کد زیر را به برنامه اضافه می کنیم.و تنظیمات مد نظر خود را اعمال می کنیم.
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
    XpsDocument xps= new XpsDocument(@"D:\test.xps", System.IO.FileAccess.Read);
    documentViewer1.Document = xps.GetFixedDocumentSequence();
    }

    برای غیر فعال کردن منوی رایت کلیک هم از کد زیر استفاده می کنیم:
    <DocumentViewer.ContextMenu>
    <ContextMenu>
    <MenuItem Header="test"></MenuItem>
    </ContextMenu>
    </DocumentViewer.ContextMenu>
    امید وارم این آموزش که در واقع یکی از مشکلات اصلی خود من بود برای شما مفید بوده باشد.
    منابع:
    http://www.umutluoglu.com/english/po...ol-in-WPF.aspx
    و msdn

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    دیار نصف جهان
    پست
    43

    نقل قول: نمایش فایل های متنی شامل عکس در WPF به حالت فقط خواندنی

    البته سعی می کنم در آموزشی دیگر نحوه تغییر منوی رایت کلیک را به طور کامل توضیح دهم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •