You can get the unformatted text in the RichTextBox using this approach
RichTextBox rtb = richTextBox as RichTextBox;
TextRange tr = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
PermalinkCategory
You can get the unformatted text in the RichTextBox using this approach
RichTextBox rtb = richTextBox as RichTextBox;
TextRange tr = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
PermalinkYou must set the ‘AllowDrop’ property on the RichTextBox control to true and also handle both the ‘DragEnter’ and ‘DragDrop’ events.
Add event handlers to the control as given below.
[C#]
using System.Windows.Forms;
richTextBox1.DragEnter += new DragEventHandler( richTextBox1_DragEnter );
richTextBox1.DragDrop += new DragEventHandler( richTextBox1_DragDrop );
Write event handlers :
{
private void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.Data.GetDataPresent(DataFormats.Text)
? DragDropEffects.Copy
: DragDropEffects.None;
}
private void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
// Load the file into the control
string text = (string)e.Data.GetData('Text');
richTextBox1.LoadFile(text, RichTextBoxStreamType.RichText);
}
public Window1()
{
InitializeComponent();
}
}
PermalinkThis can be done using the XAML code as given below.
[XAML]
<Page xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
x:Class='SDKSample.SaveLoadPrintRTB' >
<StackPanel>
<RichTextBox Name='richTB'>
<FlowDocument>
<Paragraph>
<Run>Paragraph 1</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
<Button Click='SaveRTBContent'>Save RTB Content</Button>
<Button Click='LoadRTBContent'>Load RTB Content</Button>
<Button Click='PrintRTBContent'>Print RTB Content</Button>
</StackPanel>
</Page>
Below is the code-behind for the example.
[C#]
// Handle 'Save RichTextBox Content' button click.
void SaveRTBContent(Object sender, RoutedEventArgs args)
{
// Send an arbitrary URL and file name string specifying
// the location to save the XAML in.
SaveXamlPackage('C:\\test.xaml');
}
// Handle 'Load RichTextBox Content' button click.
void LoadRTBContent(Object sender, RoutedEventArgs args)
{
// Send URL string specifying what file to retrieve XAML
// from to load into the RichTextBox.
LoadXamlPackage('C:\\test.xaml');
}
// Handle 'Print RichTextBox Content' button click.
void PrintRTBContent(Object sender, RoutedEventArgs args)
{
PrintCommand();
}
// Save XAML in RichTextBox to a file specified by _fileName
void SaveXamlPackage(string _fileName)
{
TextRange range;
FileStream fStream;
range = new TextRange(richTB.Document.ContentStart, richTB.Document.ContentEnd);
fStream = new FileStream(_fileName, FileMode.Create);
range.Save(fStream, DataFormats.XamlPackage);
fStream.Close();
}
// Load XAML into RichTextBox from a file specified by _fileName
void LoadXamlPackage(string _fileName)
{
TextRange range;
FileStream fStream;
if (File.Exists(_fileName))
{
range = new TextRange(richTB.Document.ContentStart, richTB.Document.ContentEnd);
fStream = new FileStream(_fileName, FileMode.OpenOrCreate);
range.Load(fStream, DataFormats.XamlPackage);
fStream.Close();
}
}
// Print RichTextBox content
private void PrintCommand()
{
PrintDialog pd = new PrintDialog();
if ((pd.ShowDialog() == true))
{
//use either one of the below
pd.PrintVisual(richTB as Visual, 'printing as visual');
pd.PrintDocument((((IDocumentPaginatorSource)richTB.Document).DocumentPaginator), 'printing as paginator');
}
}
PermalinkOne way to do this is to use the ‘RichTextBox.SaveFile()’ method.
[C#]
private void button1_Click( object sender, EventArgs e )
{
// get a file name from the user
SaveFileDialog saveFile1 = new SaveFileDialog();
saveFile1.DefaultExt = '*.rtf';
saveFile1.Filter = 'RTF Files|*.rtf';
if ( saveFile1.ShowDialog() == DialogResult.OK )
richTextBox1.SaveFile( saveFile1.FileName, RichTextBoxStreamType.RichText )
}
PermalinkFax: +1 919.573.0306
US: +1 919.481.1974
UK: +44 20 7084 6215
Toll Free (USA):
1-888-9DOTNET