是否有一些技巧可以告诉blend停止尝试在我的app.xaml中设置startupURI?我用谷歌搜索,但没有看到任何东西,所以我想我会在这里问。
我使用启动例程并自己实例化mainwindow。当我让它编译时,每一次混合都喜欢在startupURI =“MainWindow.xaml”中抛出。偶尔我会看到一些消息:“没有与这个项目相关的启动场景。你想混合到等等吗?”或类似的规定。我点击取消/否,它仍然在我的代码中扔了一个gremlin。内部混合有一些机制来检查这个属性,或者它不会通过对话框向我抱怨。那么我怎么才能告诉它“没有感谢混合,没有那个我很好?”,哈哈。
非常讨厌。我打开混合做一些简单的事情,比如使用颜色选择器并使用它来编译,因为VS2010没有打开。我的结果是两个主要窗口。但它并不是每次都这样做,所以它不是一种可重复的行为。编译器只是随机出现。
编辑:我正在使用混合4但是当我使用混合3时我也看到了这种情况。
答案 0 :(得分:0)
这是一个可怕的,可怕的黑客,但嘿,它的确有效。默认情况下,StartupUri为null,但您无法使用该属性将其设置为null,因此如果您希望生活在边缘,则可以绕过该属性。
// Dangit blend! Stop inserting a stupid StartupUri
private void FixStartupUri()
{
var type = typeof(Application);
var startupUri = type.GetField("_startupUri", BindingFlags.Public
| BindingFlags.NonPublic
| BindingFlags.Instance);
startupUri.SetValue(this, null);
}
将它添加到您的Application类并像这样调用它:
protected override void OnStartup(StartupEventArgs e)
{
FixStartupUri();
base.OnStartup(e);
// Do the rest of your startup stuff.
}