相关疑难解决方法(0)

WPF图像资源

我来自一个主要是Web和一点点Windows窗体背景.对于一个新项目,我们将使用WPF.WPF应用程序需要10-20个小图标和图像用于说明目的.我正在考虑将它们作为嵌入式资源存储在程序集中.这是正确的方法吗?

如何在XAML中指定Image控件应从嵌入式资源加载图像?

.net c# wpf embedded-resource

392
推荐指数
7
解决办法
44万
查看次数

从XAML中的*.resx文件中获取值

是否可以将资源文件中的某些值添加到XAML标记中?或者对于本地化,我们总是要在*.cs文件中制作这样的东西:

txtMessage.Text = Messages.WarningUserMessage;
Run Code Online (Sandbox Code Playgroud)

Messages资源在哪里,txtMessage是TextBlock.

c# xaml localization resx

66
推荐指数
4
解决办法
7万
查看次数

StaticExtension值无法解析

我遇到了WPF绑定到静态属性的一些问题.在我的应用程序中有一个名为Globals的类,它包含ThisAddIn静态属性.这个对象允许我访问一个User属性,它基本上是我想在我的Binding中使用的.所以,我的XAML看起来像这样:

<TextBlock Text="{Binding Path=User.Name
                   , Source={x:Static Member=s:Globals.ThisAddIn}}" />
Run Code Online (Sandbox Code Playgroud)

命名空间s由以下行在顶部声明:

xmlns:s="clr-namespace:ConsoleApplication16.Model"
Run Code Online (Sandbox Code Playgroud)

我发现了很多不同的方法,如何在XAML中引用静态属性,但除了这个之外没有一个工作,这对我来说似乎也是最合乎逻辑的.我发现的一些样本根本没有使用Path或Member.

经过一些测试后我找到了正确的方法,使用"x:Static Member"来定义你想要使用的类和静态属性,而Path在这个对象里面定义了正确的属性,就像普通绑定一样.

尽管此解决方案在没有任何抱怨的情况下进行编译,但会弹出XAMLParseException,直接告诉我StaticExtension值无法解析为枚举,静态字段或静态属性.

data-binding wpf xaml static xamlparseexception

55
推荐指数
2
解决办法
1万
查看次数

如何将资源文件中的图像转换为WPF menuitem.icon

我有以下代码(XAML C#):

        <Menu IsMainMenu="True" DockPanel.Dock="Top">
            <MenuItem Name="fileMenu" Header="_File" />
            <MenuItem Name="editMenu" Header="_Edit" />
            <MenuItem Name="setupMenu" Header="_Setup">
                <MenuItem Header="_Language">
                    <MenuItem.Icon> 
                         //I want to insert image here
                    </MenuItem.Icon>
                </MenuItem>
            </MenuItem>
            <MenuItem Name="helpMenu" Header="_Help" />
        </Menu>
Run Code Online (Sandbox Code Playgroud)

还有一个名为images.resx的资源文件,其中包含一个名为lang.png的图像.如何将图像作为菜单项的图标插入?有没有更好的办法?

c# wpf resources xaml image

17
推荐指数
1
解决办法
3万
查看次数

将URI打包到resx文件中嵌入的图像

如何为资源文件中的图像构造包URI?

我有一个名为的程序集MyAssembly.Resources.dll,它有一个名为Images的文件夹,然后在那里有一个名为Assets.resx的资源文件.此资源文件包含我的图像(称为MyImage.png).我的代码行是:

uri = new Uri("pack://application:,,,/MyAssembly.Resources,Culture=neutral,PublicKeyToken=null;component/Images/Assets/MyImage.png");
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将此URI提供给新BitmapImage的构造函数时,我会收到带有该消息的IOException

找不到资源'images/assets/myimage.png'.

请注意,我在同一个程序集中有其他松散图像,我可以使用包URI检索正常,这些图像的构建操作设置为资源但它们没有嵌入到resx文件中.我应该在路径中包含resx文件的名称吗?

(我希望在resx文件中嵌入图像,以便我可以利用UI文化设置来检索正确的图像(图像包含文本)).

wpf resources uri image internationalization

15
推荐指数
3
解决办法
6564
查看次数

绑定到使用XAML添加到resx文件的图像的图像

我的WPF应用程序包含一个资源文件MyResources.resx,其中包含多个字符串和图像.因为应用程序需要本地化,所以我对全局化资源的所有引用必须通过自动生成的MyResources类的命名属性来完成.以下代码适用于字符串资源:

<Button Content="{x:Static local:Properties.MyResources.ButtonText}" />
Run Code Online (Sandbox Code Playgroud)

然而,这对图像不起作用.假设我有一个图像eflag.bmp作为名为Flag的资源添加到资源中,我希望能够做到这样的事情:

<Image Source="{x:Static local:Properties.MyResources.Flag}" />
Run Code Online (Sandbox Code Playgroud)

请注意以下替代方法:

<Image Source="/MyNamespace;component/Resources/eflag.bmp" />
Run Code Online (Sandbox Code Playgroud)

在这种情况下无法使用,因为它无法处理本地化.使用代码可以解决问题,但我正在寻找基于XAML的解决方案.

wpf resources image

5
推荐指数
1
解决办法
5071
查看次数

如何将图像添加到资源的方式不同

嗨我发现了两种如何将图像添加到资源的方法.

首先是:例如,我创建文件夹图像并将一些图像添加到此文件夹,在Resources上设置图像构建操作.像这里的东西:

http://www.codewrecks.com/blog/index.php/2010/07/23/bind-an-image-to-a-property-in-wpf/

第二种方法是使用Resources.resx并使用AddResources - > AddExistingFile.

结果一样吗?

对不起我的英语不好.

wpf resources image

4
推荐指数
1
解决办法
1万
查看次数

加载位图资源时,.net 5 应用程序不支持 BinaryFormatter

我已将几个 ASP.Net Core 2.2 项目迁移到 .Net 5,我遇到的最后一个问题是在尝试从项目资源加载位图时出现 System.NotSupported 异常。

RtfUtility.AppendLogo(result, Properties.Resources.Logo);
Run Code Online (Sandbox Code Playgroud)

System.NotSupportedException HResult=0x80131515 Message=BinaryFormatter 在此应用程序中禁用序列化和反序列化。有关详细信息,请参阅https://aka.ms/binaryformatter 。源=System.Runtime.Serialization.Formatters

我没有明确使用BinaryFormatter但奇怪的是,以相同的方式加载二进制 PDF 文件时我没有收到错误:

processor.LoadDocument(new MemoryStream(Properties.Resources.Certificate));
Run Code Online (Sandbox Code Playgroud)

两种机制都使用ResourceManager.GetObject,所以我不确定发生了什么。我知道我可以关闭项目文件中的错误,但这似乎是一个短期解决方案,我宁愿修复它并忘记它。感谢您可以提供的任何建议...

编辑:

堆栈跟踪如下,该错误不是由库引起的,而是在访问资源时引起的。当嵌入或链接图像时会发生这种情况 - 似乎没有什么区别,但对于(二进制)PDF 文件不会发生这种情况。

感谢您查看此...

在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流序列化流)在System.Resources.ResourceReader。<>c__DisplayClass7_0`1.b__0(对象obj,流流)在System.Resources.ResourceReader.DeserializeObject(Int32 typeIndex) ) 在 System.Resources.ResourceReader._LoadObjectV2(Int32 pos, ResourceTypeCode& typeCode) 在 System.Resources.ResourceReader.LoadObjectV2(Int32 pos, ResourceTypeCode& typeCode) 在 System.Resources.ResourceReader.LoadObject(Int32 pos, ResourceTypeCode& typeCode) 在 System.Resources .RuntimeResourceSet.GetObject(字符串键,布尔ignoreCase,布尔isString)在System.Resources.RuntimeResourceSet.GetObject(字符串键,布尔ignoreCase)在System.Resources.ResourceManager.GetObject(字符串名称,CultureInfo文化,布尔wrapUnmanagedMemStream)在System. C:\Development\Project\Project.Infrastruct\Properties\Resources.Designer.cs 中 Project.Infrastruct.Properties.Resources.get_Logo() 处的 Resources.ResourceManager.GetObject(String name, CultureInfo Culture):Project.Infrastruct 处的第 227 行C:\Development\Project\Project.Infrastruct\Models\ShowWording.cs 中的 .Models.ShowWording.Generate():第 146 行

.net c# asp.net binaryformatter

4
推荐指数
1
解决办法
2万
查看次数