2010-05-23 18 views
1

Je suis débutant dans WPF. Mon App.xaml ressemble ci-dessousWPF: Accéder aux ressources d'application sans faire référence à Shell depuis 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> 

Je ne mets pas le StartupUri puisque je veux une première approche présentateur. Je procédez comme suit dans App.xaml.cs

protected override void OnStartup(StartupEventArgs e) 
    { 
     base.OnStartup(e); 
     var appPresenter = new ApplicationPresenter(
      new Shell(), new ContactRepository()); 
     appPresenter.LaunchView(); 
    } 

J'ai un usercontrol appelé « SearchBar.xaml » qui fait référence à « lightBlueBrush » comme StaticResource. Lorsque j'essaie d'ouvrir "Shell.xaml" dans le concepteur, il me dit: "shell.xaml" ne peut pas être chargé au moment du design car il dit qu'il ne pouvait pas créer une instance de type "SearchBar.xaml". Lorsque j'ai débogué le devenv.exe en utilisant une autre instance de Visual Studio, il me dit qu'il n'a pas accès au pinceau que j'ai créé dans app.resources.

Si l'on fait une première approche Presenter, comment accéder aux ressources?

Je l'ai eu fonctionnait quand le startupURI était "Shell.xaml" et l'événement de démarrage n'était pas présent.

Des idées/idées/suggestions. J'essaie juste de comprendre.

Tout fonctionne comme prévu lorsque j'exécute l'application, mais pas au moment de la conception.

Répondre

0

base.OnStartup (e) doit être la dernière ligne de la fonction.