2010-03-06 13 views
6

Ho un'app WPF 4 con un numero di UserControls che condividono gli stili nei relativi controlli figlio. Quindi sto creando un numero di stili nel mio App.xaml come. Per esempio:Impossibile risolvere la risorsa (VS 2010 RC)

<Style x:Key="ViewTitle" TargetType="{x:Type Border}"> 
    <Setter Property="BorderBrush" Value="LightGray" /> 
    <Setter Property="HorizontalAlignment" Value="Stretch" /> 
    <Setter Property="VerticalAlignment" Value="Top" /> 
</Style> 

Poi nei miei controlli utente che uso StaticResource a loro riferimento, ad esempio:

<Border Style="{StaticResource ViewTitle}"> 
    <TextBlock Margin="6,3,4,5" FontSize="18" FontWeight="Bold" Foreground="White" HorizontalAlignment="Left" Text="Host Management" /> 
</Border> 

Questo tutto funziona benissimo. Il problema è che Visual Studio 2010 RC sta mettendo un blu ondulato sotto il riferimento StaticResource e dicendo: La risorsa "ViewTitle" non può essere risolta.

Che succede? Si tratta di un problema con Visual Studio o sto facendo qualcosa di sbagliato?

+0

si ottiene un errore in compilazione o l'esecuzione, o solo il blu ondulato? Se è solo il blu ondulato, e tutto funziona bene in fase di esecuzione, lo scriverei come designer fallire – itowlson

+0

Sì, solo un designer ondulati .Si costruisce e funziona bene.Io sono nuovo a WPF così Ero sospettoso che stavo sbagliando – BrettRobi

+0

Ho lo stesso problema anche :( –

risposta

10

Dalla nota nei commenti che "si costruisce e funziona bene", questo è quasi sicuramente un problema con Visual Studio. Sfortunatamente, il progettista VS WPF è infame da errori e spesso non riesce a risolvere o gestire perfettamente XAML legale. L'unico vero test, quindi, è compilare ed eseguire: fastidioso, ma solo qualcosa con cui si impara a convivere.

È maggio che il progettista di Expression Blend gestisce meglio questa situazione. Blend mira più ad essere un visual designer (i grafici sono i principali utenti target) ma Blend 3 ha migliorato significativamente il supporto per la modifica del codice sorgente XAML. Potrebbe valere la pena provarlo.

1

Questo problema è stato "risolto" in Expression Blend 4.

Blend 4 automaticamente ti dà la possibilità di localizzare risorse fase di progettazione, se si dispone di una risorsa che potrebbe non essere risolto.

La miscela quindi crea un oggetto DesignTimeResourceDictionary da cui accederà alle risorse.

Tuttavia, questo non vi aiuterà molto se VS2010 è il vostro editor principale :(

La soluzione Blend 4:

http://adamkinney.wordpress.com/2010/05/04/design-time-resources-in-expression-blend-4-rc/