我在XAML标记部分的开头就收到错误消息
为'System.Windows.StaticResourceExtension'提供一个异常提供的值。行号'8'和行位置'9'。
<Window x:Class="prj.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:prj"
xmlns:c="clr-namespace:prj.Controls"
WindowStartupLocation="CenterOwner"
Title="MainWindow"
Height="850" Width="1000">
感谢任何帮助。
此致 阿米特
答案 0 :(得分:0)
此错误可能由以下原因引起: 对于静态资源,您应该在引用它之前定义它(动态资源没有此限制)。 有关详情,请参阅: http://social.msdn.microsoft.com/Forums/en/wpf/thread/f76fdf5d-a9cd-4f42-b2a0-ad560744a39f
也许它没用,但请先仔细检查一下代码。
答案 1 :(得分:0)
此处的行号和列号无关。在这种类型的例外情况下,他们可能没有实际意义。
深入了解内部异常并寻找无法找到的密钥。然后在整个解决方案中搜索该密钥以查看其使用位置。对于每种用法,请确保资源可用。
通常,当有一个用户控件(UC1)具有在UC1主体中使用的资源时,会发生这种情况。然后,另一个开发人员将UC1的一部分复制到UC2而不复制资源。当在窗口中使用UC2时,会显示这种类型的神秘消息。
答案 2 :(得分:0)
行号和位置可能引用了后面代码中的InitializeComponent()
方法。我会提出大多数建议。在使用之前,请确保您的静态资源可用。
您是否在该XAML文件中的任何位置使用静态引用?如果是这样,找到它定义的字典并确保它在XAML文件之前加载。最简单的方法是将资源字典添加到应用程序merged dictionaries。您可以刷新静态资源here的知识。
答案 3 :(得分:0)
我有完全相同的事情,但我遇到的问题是因为我在UserControl的参考资料部分为DataTemplate
定义了一个ListBox
但是,对于WPF而言,我是一个新的{{1} }}。
嗯,这导致了问题,因为DataType=”ListBoxItem”
是不必要的。拿走它解决了我的问题。