c# - 如果启动窗口位于不同的项目/库中,如何在 App.xaml 中设置 StartupUri?
问题描述
下面是我的解决方案树,你可以看到,它App.xaml
在G_Hoover.Init项目中,而BrowserView.xaml
窗口在G_Hoover.Views项目中。
我试图弄清楚如何定义StartupUri
in App.xaml
,这BrowserView.xaml
将是一个启动窗口。
我发现的唯一方法是在这里,但是当我输入时App.xaml
:
StartupUri="C:/Users/asus/Desktop/IT/Programowanie/Projekty/G_Hoover/G_Hoover.Views/BrowserView.xaml"
我收到一个例外:
XamlObjectWriterException:指定的类名“G_Hoover.Views.BrowserView”与实际的根实例类型“System.Windows.Window”不匹配。删除 Class 指令或通过 XamlObjectWriterSettings.RootObjectInstance 提供实例。
当我输入:
StartupUri="pack://application:,,,/G_Hoover;G_Hoover.Views/BrowserView.xaml">
我收到异常:
System.IO.IOException:'找不到资源'g_hoover;g_hoover.views/browserview.xaml'。
App.xaml.cs
当我基于这种方法输入它时,我得到的结果相同:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
StartupUri = new Uri("pack://application:,,,/" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ";G_Hoover.Views/BrowserView.xaml", UriKind.RelativeOrAbsolute);
//or this: StartupUri = new Uri("pack://application:,,,/G_Hoover;G_Hoover.Views/BrowserView.xaml", UriKind.RelativeOrAbsolute);
//or this: StartupUri = new Uri("C:/Users/asus/Desktop/IT/Programowanie/Projekty/G_Hoover/G_Hoover.Views/BrowserView.xaml");
}
}
请注意G_Hoover.Init引用了G_Hoover.Views。我究竟做错了什么?
解决方案
StartupUri
您可以在中删除App.xaml
和管理应用程序启动App.xaml.cs
。
例如:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
var startupView = new G_Hoover.Views.BrowserView.xaml();
startupView.ShowDialog();
base.OnStartup(e);
}
}
推荐阅读
- c - STM32 LwIP netconn_write传输结构的问题
- c# - 当玩家(另一个 2D 精灵)统一进入其触发器时,我如何让我的硬币(一个 2D 精灵)自毁?
- django - 如何使用 Google Drive 为部署在 Heroku 中的 Django 应用程序保存媒体文件?
- android - Android Studio 中突出显示的 RxAndroid `Observable...subscribe`
- android - XML重复属性android studio
- python-3.x - WTForms HiddenField() POST 后不包含任何数据
- json - 如何将 URLSession 中的嵌套原始 JSON 发送到 Vapor API?
- ios - xcodebuild 在仅请求 tvOS 时构建 iOS 和 tvOS 目标
- methods - 是否有方法注释表明它与指定的功能接口匹配?
- excel - 从 For Next 循环中剪切和粘贴的代码。我怎样才能专门使用 For Each 循环来做到这一点?