.net 将RTF文件从资源加载到WPF应用程序中的RichTextBox
我正在尝试加载一个RTF文件的内容,我已经将其放入了资源中(通过.net 将RTF文件从资源加载到WPF应用程序中的RichTextBox,.net,wpf,resources,richtextbox,rtf,.net,Wpf,Resources,Richtextbox,Rtf,我正在尝试加载一个RTF文件的内容,我已经将其放入了资源中(通过Project->Properties->resources->addfile) 我想将Agreement.rtf的内容加载到RichTextBox中,我尝试了以下操作: Dim stream As Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(My.Resources.ResourceManager.GetObject("Agre
Project->Properties->resources->addfile
)
我想将Agreement.rtf
的内容加载到RichTextBox
中,我尝试了以下操作:
Dim stream As Stream
stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(My.Resources.ResourceManager.GetObject("Agreement").GetType(), "IOpzioni.Agreement.rtf")
RichTextBox1.SelectAll()
RichTextBox1.Selection.Load(stream, DataFormats.Rtf)
也
IOpzioni
是我的默认名称空间(我已经仔细检查过了)
似乎什么都不管用。正确的方法是什么 首先要确保文件是项目的嵌入式资源。然后确保文件的资源名是文件夹位置,从项目根开始以点分隔。例如,假设我有一个项目测试,其中资源文件夹位于Runtime\Source下,那么我应该将名称设置为Test.Runtime.Source.resources.Agreement.rtf 然后只需调用此方法(在C#中,但您可以将其转换),在本例中发送您的名称“Test.Runtime.Source.Resources.Agreement.rtf”以读取内容:
public static string GetResourceByName(string resource)
{
Assembly assembly = Assembly.GetExecutingAssembly();
StreamReader reader = new StreamReader(assembly.GetManifestResourceStream(resource));
return reader.ReadToEnd();
}
我在我的WPF应用程序中以一种简单的方式实现了这一点。请看我的博客:
Resources.resx
文件(如果还没有)
(在那里)RTFDoc.rtf
Resources.resx
文件之外,还有一个代码隐藏文件:Resources.Designer.cs
。打开它并复制其命名空间和类名。在我的例子中,它是Surf.Resources.Resource1
RichTextBox
控件中加载RTF资源。下面是代码背后的几行代码:
using Surf.Resources;
void Surface_Loaded(object sender, RoutedEventArgs e)
{
var stream = new MemoryStream(Encoding.Unicode.GetBytes(Resource1.RTFDoc));
RichTextBox1.Selection.Load(stream, DataFormats.Rtf);
}
冲浪是我在这里的项目名称。希望这有帮助
using Surf.Resources;
void Surface_Loaded(object sender, RoutedEventArgs e)
{
var stream = new MemoryStream(Encoding.Unicode.GetBytes(Resource1.RTFDoc));
RichTextBox1.Selection.Load(stream, DataFormats.Rtf);
}