我在VB.NET中有WPF应用程序,它关闭了Application Framework并从Sub Main方法开始。
Public Module Bootstrapper
<STAThread>
Sub Main()
Dim app As New System.Windows.Application
AddHandler app.Startup, AddressOf Application_Startup
AddHandler app.Exit, AddressOf Application_Exit
app.MainWindow = New MainWindow
app.Run(app.MainWindow)
End Sub
End Module
我还有用户登录窗口,从主窗口的构造函数显示。这是XAML的片段:
<TextBox Name="UserIDTextBox"
Grid.Column="1"
Grid.Row="0"
Text="{Binding UserID,
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource ErrorToolTipStyle}"/>
当我启动应用程序时,会引发XamlParseException:找不到名为“ErrorToolTipStyle”的资源。资源名称区分大小写。我确信它是由Sub Main启动应用程序引起的,而不是通过在项目属性中指定主窗口引起的。任何想法如何解决这个问题,除了不从Sub Main开始?
答案 0 :(得分:0)
您的WPF应用程序还有一个App.xaml,您可以在其中添加资源词典。
如果没有它,您应该将此资源添加到您拥有UserIDTextBox的页面/窗口/控件。
答案 1 :(得分:0)
经过数小时的研究后问题得以解决。如果您想手动启动WPF应用程序,请勿尝试以任何方式创建自己的启动类/模块或自定义Application类。任何这样的尝试都会导致奇怪的运行时错误,无法使用应用程序范围的资源以及许多类似的错误错误。
只需从Application.xaml中删除StartupUri元素,并在项目的Application类中处理Startup事件,在该类中放置要放入Sub Main的所有内容。这是我找到的唯一可行且可靠的解决方案。