无法在Sub Main中找到资源启动WPF应用程序

时间:2015-08-31 13:46:32

标签: wpf vb.net xaml

我在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开始?

2 个答案:

答案 0 :(得分:0)

您的WPF应用程序还有一个App.xaml,您可以在其中添加资源词典。

如果没有它,您应该将此资源添加到您拥有UserIDTextBox的页面/窗口/控件。

答案 1 :(得分:0)

经过数小时的研究后问题得以解决。如果您想手动启动WPF应用程序,请勿尝试以任何方式创建自己的启动类/模块或自定义Application类。任何这样的尝试都会导致奇怪的运行时错误,无法使用应用程序范围的资源以及许多类似的错误错误。

只需从Application.xaml中删除StartupUri元素,并在项目的Application类中处理Startup事件,在该类中放置要放入Sub Main的所有内容。这是我找到的唯一可行且可靠的解决方案。