相关疑难解决方法(0)

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 XAML中的My.Resources?

有没有办法通过Xaml访问My.Resources?

像这样

<Image Source="{Binding MyImage,
    Source={x:Static my:Resources},
    Converter={StaticResource MyBitmapToImageSourceConverter}}" />
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误: \ Application.xaml(122,36):错误MC3029:'my:Resources'成员无效,因为它没有合格的类型名称.

以上情况当然不起作用.

注意:转换器仅用于说明.


更新:

我想到了一个想法,如果它可以工作,这可能是一个好方法,我为资源创建了一个包装类:

Public Class Resources
    Public Shared ReadOnly m_Resources As New Resources
    Public Shared ReadOnly Property Resources() As Resources
        Get
            Return m_Resources
        End Get
    End Property

    Public ReadOnly Property MyResources(ByVal name As String) As Object
        Get
            Return My.Resources.ResourceManager.GetObject(name)
        End Get
    End Property
End Class
Run Code Online (Sandbox Code Playgroud)

然后在我的绑定中,我试着像这样访问它:

<Setter Property="ImageSource"
Value="{Binding MyResources[Ok], Source={x:Static src:Resources.Resources}}"/>
Run Code Online (Sandbox Code Playgroud)

但我仍然收到以下消息:

System.Windows.Data错误:16:无法从''(类型'资源')获取'MyResources'值(类型'对象').BindingExpression:路径=为MyResources [确定]; DataItem ='Resources'(HashCode = 59109011); target元素是'Image'(Name ='btnOk'); target属性为'Source'(类型'ImageSource')TargetParameterCountException:'System.Reflection.TargetParameterCountException:参数计数不匹配.

顺便说一下,我在MyResources Getter中放置了一个测试MessageBox,似乎根本没有访问该属性.

vb.net wpf xaml my.resources

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

来自 WPF 项目资源的图像停止显示

我将一些图像作为资源添加到我的 WPF 项目中,将它们的构建操作更改为Resource在解决方案资源管理器中并将它们添加到我的主窗口中,如下所示:

<Image ... Source="Resources/user.png"/>
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我从我的解决方案中添加和删除一个项目,然后这些图像停止在设计和运行时显示。<Image Source/>XAML 编辑器中的标记和错误列表现在显示消息:

找不到路径“C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Resources\user.png”的一部分。

我尝试重新启动 Visual Studio 和计算机,并对其进行清理和重建,但我仍然没有得到图像。

c# wpf

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

将 Icon 属性添加到 xaml

我正在尝试向 wpf 窗口添加图标,但每当我向代码中添加以下行时,我都会收到 xaml 解析异常:

Icon="myIcon.ico"
Run Code Online (Sandbox Code Playgroud)

我的窗口标签看起来像这样(并且运行良好),没有 Icon 属性:

<Window x:Class="MyProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MyProject"
mc:Ignorable="d"
Title="My Project" Height="562.356" Width="1058.204">
Run Code Online (Sandbox Code Playgroud)

如果我Icon="myIcon.ico"在 之前添加,则会在in>上出现错误WWidth="1058.204"

抛出异常:PresentationFramework.dll 中的“System.Windows.Markup.XamlParseException”

附加信息:“为‘System.Windows.Baml2006.TypeConverterMarkupExtension’提供值引发了异常。” 行号“8”和行位置“58”。

因此,错误的代码如下所示:

<Window x:Class="MyProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MyProject"
mc:Ignorable="d"
Title="My Project" Height="562.356" Width="1058.204"
Icon="myIcon.ico">
Run Code Online (Sandbox Code Playgroud)

我觉得我一定在这里错过了一些非常简单的东西。基于此处的其他帖子(How to change title bar image in WPF Window?),我觉得我做得对。

有人可以帮忙吗?谢谢!

c# wpf xaml window

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