ورود

View Full Version : مبتدی: مشکل با RichTextBox



ahrimaneahurai
یک شنبه 28 آذر 1389, 17:26 عصر
سلام
دوستان من تازه شروع کردم به یادگیری wpf
من یه RichTextBox رو می خوام مقدار دهی کنم نه از فایل xaml بلکه با کد #C. اما نه text نه bind نه load داره
توی فایل xaml هم text نداره
چطور باید مقدار دهی کنم ؟
رشته ای هم که می خوام توش بریزم تگ های html هم داره
ممنون از توجهتون

farashah_jalal
یک شنبه 28 آذر 1389, 19:11 عصر
سلام
می تونی ادرس فایلی که می خوای با reach text box باز بشه بهش بدی.


privatevoid LoadTextDocument(string fileName)
{
TextRange range;
System.IO.FileStream fStream;
if (System.IO.File.Exists(fileName))
{
range = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd);
fStream = new System.IO.FileStream(fileName, System.IO.FileMode.OpenOrCreate);
range.Load(fStream, System.Windows.DataFormats.Text);
fStream.Close();
}
}

مهدی فرزاد
یک شنبه 28 آذر 1389, 23:20 عصر
سلام
RichTextBox خاصیتی داره به نام Document که مقداری از نوع FlowDocument میگیره
همچنین FlowDocument خاصینی داره به نام Blocks که در آن میتنونید پاراگراف مورد نظر رو اضافه کنید
حالا با استفاده از کلاس Paragraph و استفاده از اون میتونید پاراگراف رو بسازید و در FlowDocument اضافه کرده و به خاصت RichTextBox.Document ست کنید
به شکل زیر


//FlowDocument ساخت یک
FlowDocument myFlowDoc = newFlowDocument();

// بهمراه متن Paragraph ساخت یک

Paragraph para = newParagraph();
para.Inlines.Add(newRun("welcom to barnamenevis.org "));
para.Inlines.Add(newBold(newRun("Mehdi farzad.")));

//اضافه کردن پاراگراف به فلوداکیومنت ساخته شده

myFlowDoc.Blocks.Add(para);

//ست کردن خاصیت داکیومت ریچ تکس باکس به فلو داکیومنت ساخته شده

this.richTextBox1.Document = myFlowDoc;

همچنین شما میتوند به روش زیر هم چندین پاراگراف رو به FlowDocument اضافه کنید

myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1")));
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2")));
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3")));

ahrimaneahurai
سه شنبه 30 آذر 1389, 15:45 عصر
ممنون دوستان
من متن رو از access می خونم
با flowdocument فکر کنم کارم راه بیفته
ممنونم دوستان

ahrimaneahurai
سه شنبه 30 آذر 1389, 22:07 عصر
دوست عزیز شرمنده باز سوال می پرسم
من با document مشکلم حل شد
اما الان مشکلی که دارم اینه که تگ های html رو نشون نمیده و مثلا به جای اینکه یه خط فاصله بده مینویسه <br>
این مشکل رو چه جور باید حل کنم ؟
ممنون

مهدی فرزاد
چهارشنبه 01 دی 1389, 08:31 صبح
سلام
ببین این به کارت میاد

HTML to FlowDocument Converter (http://blog.spencen.com/2008/01/19/html-to-flowdocument-converter.aspx)

البته توی این لینک اول Html رو کانورت کرده به Xaml که روش اون هم توی لینک زیر هست

http://blogs.msdn.com/b/wpfsdk/archive/2006/05/25/606317.aspx

در ضمن شما میتونی تگ های مورد نظر در html رو به تگ های قابل شناسایی در FlowDocument تبدیل کنی (با متد Replace)

تمام تگ ها اینجا هست http://www.w3schools.com/HTML/html_formatting.asp

این لینک رو هم ببینید بد نیست
http://www.codeproject.com/KB/edit/htmlrichtextbox.aspx

اگه به کارت اومد ما رو هم دعا کن:لبخندساده:

ahrimaneahurai
چهارشنبه 01 دی 1389, 12:52 عصر
ممنون دوست عزیز
اما چون برنامه اینجوری هست که هربار یه فایل html ساخته میشه برای هر قسمت. css هم داره به همین خاطر شاید تو کانورت به مشکل بخورم
اما لینک های دیگه رو فکر کنم بهتر باشن.
باز هم ممنون دوست عزیز