Tag: 资源

从C#Resources读取文本文件

我需要从我的资源中读取一个文件并将其添加到列表中。 我的代码: private void Form1_Load(object sender, EventArgs e) { using (StreamReader r = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(“myProg.myText.txt”))) { //The Only Options Here Are BaseStream & CurrentEncoding } } 我搜索了这个,只得到了像”Assembly.GetExecutingAssembly….”这样的答案,但我的程序没有选择汇编。

如何使用嵌入资源的DLL加载?

我有一个DLL >> System.Data.SQLite.dll 要以正常方式使用它>只需将其添加为参考和 using System.Data.SQLite; 然后,我可以使用此DLL中的所有函数。 但是 ,我想将我的app.exe和这个DLL合并为一个文件。 我尝试过使用ILmerge ,但是失败了。 据我所知, ILmerge无法合并unmanage DLL。 所以,我尝试了另一种方法>将DLL作为嵌入资源。 我可以使用以下代码将其作为程序集加载: Stream stm = Assembly.GetExecutingAssembly().GetManifestResourceStream(“MyApp.System.Data.SQLite.dll”); byte[] ba = null; byte[] buffer = new byte[16 * 1024]; using (MemoryStream ms = new MemoryStream()) { int read; while ((read = stm.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } ba = […]

矢量图像作为可重复使用的XAML片段

我想在一些WPF应用程序/库中重用一些XAML片段作为图像。 问题的背景如下: 在WPF应用程序中重用位图图像很容易。 图像可以作为资源添加,我可以在XAML中的许多地方使用 ,因此图像将是相同的。 但是我想有可能对矢量图像做同样的事情。 图像本身可以表示为Path ,但我不能重复使用相同的Path作为资源,因为禁止在几个不同的地方(可能来自多个UI线程)使用它(UI元素只能有一个逻辑父元素)。 而且,如果我想从几个Path构建“图像”,使用Canvas ,问题会变得更加复杂。 或者一些任意的XAML代码。 我尝试使用Style for the Path ,因此图像以这样的方式表示: 这似乎是一种可重用的方式,但我关注两个问题: 如果矢量图像的实现从Path更改为(例如) Canvas ,我不仅需要在样式中替换它,而且还需要在使用它的源代码中的任何位置替换它。 使用样式的路径的定义似乎过于冗长。 我认为没有办法概括这种使用Canvas或任意XAML代码的方法。 语法似乎很不自然。 通过定义UserControl ,还有其他方法可以获得可重用的XAML片段,但是为每个矢量图像定义单独的用户控件似乎是一种过度杀伤力。 是否有更好,更好,正确的方法来定义可重用的XAML片段?

命名空间错误中不存在类型资源

有另一个问题。 我几乎完成了我的项目,但感觉我必须更改项目的命名空间。 但是我没有使用重构 – >重命名,而是选择了我的命名空间,编辑 – >查找和替换并用不同的命名空间替换了我的整个解决方案(因此解决方案中的所有地方,例如命名空间或文本“name1”都存在,是现在变成了“name2”)。 但是现在我得到大约16个错误都说同样的事情:“命名空间name1中不存在类型或命名空间”资源“。 this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest; 那么例如在这行代码中(主要在designer.cs中)资源是红色的? 关于如何解决这个问题的任何提示?

从字符串资源动态获取字符串

我正在开发一个本地化的C#.NET应用程序,我们正在使用strings.resx文件来翻译应用程序中的硬编码字符串。 我使用以下代码来提取它们: using MyNamespace.Resources … string someString = strings.someString; 但是,现在我希望能够在调用中定义字符串的名称,如下所示: string someString = GetString(“someString”); 我一直在玩ResourceManager ,但我找不到将它指向我的strings.resx文件的方法。 我怎么做?

将故事板放在应用程序资源中

我需要在几个地方使用相同的故事板,因此我将故事板放在我的Application.Resources中。 当我尝试执行故事板时,唯一的问题是我需要引用我想要动画的目标。 这是我的故事板: border2 我为不同对象的高度设置动画的方式是通过更改动态资源目标。 当故事板在当前窗口时,我能够这样做。 但是现在我想将它放在应用程序资源中,我不知道如何引用目标属性。 编辑 我之前发布的解决方案效果不错但有时很难用代码创建复杂的动画。 所以我解决的另一个替代解决方案是使用表达式混合创建故事板。 所以我将一个随机控件拖到表达式混合中的主窗口并创建一个随机动画。 让我们说动画出现为: 然后我复制该代码并将其粘贴到我的工作窗口而不是APP.XAML中。 然后在我的代码中让我说我有一个: 由于某种原因,变换组必须在那里才能为对象设置动画。 无论如何,让我们说我在工作窗口中有那个寄宿生,我想用我用表达式混合创建的相同动画来设置动画。 我将在代码中做的是: Storyboard sb1 = FindResource(“Storyboard1”) as Storyboard; foreach (var child in sb1.Children) { Storyboard.SetTargetName(child, brdBorder.Name); } sb1.Begin(this); 然后我能够在我的工作窗口上设置该边框的动画。 这个很好的部分是我能够将相同的动画应用于多个对象(这是我认为创建资源的目的)当我尝试将故事板放在资源字典或app.xaml中时问题就出现了。文件。 当我这样做时,c#能够找到故事板,但故事板的属性是只读的,因此我得到错误: Cannot set a property on object ‘System.Windows.Media.Animation.DoubleAnimationUsingKeyFrames’ because it is in a read-only state. 我想要这样做的原因是将相同的动画应用于多个对象。 解决方案是使用代码构建基本动画,然后使用更复杂的动画(如缓动函数等)将其另存为资源。 让我告诉你我的意思。 在我的资源文件中,我放置了以下资源: 在expresion混合中,您可以构建更复杂的缓动function。 […]

DataAnnotation与自定义ResourceProvider

我创建了一个自定义ResourceProvider来从数据库中提取本地化信息。 我现在想使用DataAnnotation为模型添加validation。 DataAnnotation具有ErrorMessageResourceType和ErrorMessageResourceName属性,但ErrorMessageResourceType仅接受System.Type (即已编译的资源文件) 有没有办法让DataAnnotation使用自定义ResourceProvider?

确定托管与非托管资源

有关托管与非托管资源的问题很多。 我理解这两者的基本定义。 但是,我很难知道资源或对象何时被管理或不受管理。 当我想到非托管资源时,我倾向于认为本机代码不是直接属于.NET的一部分,例如pinvoke或编组资源。 我通常认为资源意味着与使用硬件的东西接口,例如文件句柄或网络连接也是不受管理的。 那些包装本机非托管资源(如FileStream .NET对象呢? FileStream必须使用非托管资源,但是当我实现IDisposable模式时,我应该将其视为托管或非托管资源吗? 到目前为止,我一直在假设如果对象实现了IDisposable ,那么它就被管理了。 我怎么知道IntPtr应该作为非托管resoruce处理?

如何检索嵌入的xml资源?

我在我的类库中添加了一个XML文件作为嵌入式资源,方法是使用Visual Studio中的项目属性访问,然后使用Resources | 添加资源| 添加现有文件… 我试图使用以下代码访问该文件,但我不断返回null引用。 有人有主意吗? var path = Server.MapPath(“~/bin/MyAssembly.dll”); var assembly = Assembly.LoadFile(path); var stream = assembly.GetManifestResourceStream(“MyNamespace.filename.xml”);

如何在C#中对ResourceSet进行排序

我有一个名为filetypes.resx的资源文件。 一些我如何计算出将资源值绑定到dropdownlist,但我不知道如何对ResourceSet的值进行排序。 这是我到目前为止所做的, FileTypes.resx 名称,值 A,1 B,2 C,3 用于绑定下拉列表的代码 DropDownList1.DataSource = Resources.FileTypes.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true); DropDownList1.DataTextField = “Key”; DropDownList1.DataValueField = “Value”; DropDownList1.DataBind(); 结果 一个 C 乙 As you can see the result is not sorted. Please help me to solve this issue. 提前谢谢了 :)