我想拥有自己继承自System.Windows.Application的应用程序类。问题是在Application.xaml文件中,我必须像这样声明应用程序:
<src:MyBaseApplication x:Class="MyApplication"
xmlns:src="clr-namespace:MyApplication;assembly=WpfTestApplication"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="FPrincipal.xaml">
<Application.Resources>
</Application.Resources>
</src:MyBaseApplication>
它在运行时运行良好,但是当我编辑项目属性时,我收到Visual Studio的项目属性编辑器的以下错误消息:
尝试加载此项目的应用程序定义文件时发生错误。无法解析文件'[...] \ Application.xaml'。请在XAML编辑器中编辑该文件以修复错误。 无法在应用程序定义文件中找到预期的根元素“Application”。
该项目是一个VB.NET项目。有人有解决方法吗?我想保留application.xaml文件。
由于
答案 0 :(得分:2)
我已经尝试使用Visual Studio 2013,但我没有遇到任何问题。所以,它应该是VS 2008特定的。您是否尝试将应用程序类重组为单独的类库?也许这是一个锁定问题。
<强>更新强>
我在VB.NET VS2013中为实现这一目标所做的步骤:
Public Class CustomApplication Inherits System.Windows.Application End Class
<self:CustomApplication x:Class="Application" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:self="clr-namespace:WPFVBTest" StartupUri="MainWindow.xaml"> </self:CustomApplication>
Class Application Inherits CustomApplication End Class
Partial Class Application Inherits CustomApplication
这样,应用程序可以毫无问题地构建和运行。我希望它可以帮助您解决错误。
答案 1 :(得分:2)
我知道它不会成为一个受欢迎的答案,但是......为什么不升级到Visual Studio 2015?它是免费的!
见鬼,他们昨天宣布VS 2017;也是免费的。
答案 2 :(得分:-1)
它应该说&lt; src:MyBaseApplication.Resources&gt; ?
答案 3 :(得分:-1)
应用程序通常指向一个Window并尝试从xaml文件中获取此信息;但是你的xaml文件中有一个Visual Studio无法确定的引用..
xmlns:src="clr-namespace:MyApplication;assembly=WpfTestApplication"
所以VS无法解析你的xaml文件,因此会出错...
我的建议:覆盖Window,或在Application上使用扩展名,如下所示:
public static class ApplicationExtensions
{
public static string GetAwesomeName(this Application)
{
return "I am an awesome application";
}
}
像这样使用:
Application.Current.GetAwesomeName();