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 هم داره به همین خاطر شاید تو کانورت به مشکل بخورم
اما لینک های دیگه رو فکر کنم بهتر باشن.
باز هم ممنون دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.