WPF:在不从App.xaml引用Shell时访问应用程序资源

时间:2010-05-23 18:38:43

标签: wpf resources app.xaml presenter-first

我是WPF的初学者。我的App.xaml如下所示

的App.xaml

<Application x:Class="ContactManager.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <Color x:Key="lightBlueColor">#FF145E9D</Color>
        <SolidColorBrush x:Key="lightBlueBrush"
                         Color="{StaticResource lightBlueColor}" />
    </Application.Resources>

我没有设置startupuri,因为我想要一个演示者第一种方法。我在app.xaml.cs

中执行以下操作
  protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        var appPresenter = new ApplicationPresenter(
            new Shell(), new ContactRepository());
        appPresenter.LaunchView();
    }

我有一个名为“SearchBar.xaml”的usercontrol,它将“lightBlueBrush”引用为staticResource。

当我尝试在设计器中打开“Shell.xaml”时,它告诉我:“shell.xaml”无法在设计时加载,因为它说它无法创建“SearchBar.xaml”类型的实例。 / p>

当我使用另一个visual studio实例调试devenv.exe时,它告诉我它无法访问我在app.resources中创建的Brush。

如果有人正在进行Presenter第一种方法,那么如何访问资源?

当startupURI是“Shell.xaml”并且启动事件不存在时,我有这个工作。

任何线索/想法/建议。我只是想了解。

当我运行应用程序而不是@design time时,一切都按预期工作。

1 个答案:

答案 0 :(得分:0)

base.OnStartup(e)应该是函数的最后一行。