2010-12-13 2 views
0

Ich verwende Blend 4 und VisualStudio 2010, um eine Kiosk WPF 4.0-App zu erstellen, die eine Assistenten-ähnliche Funktion hat. Ich habe entschieden, dass ich möchte, dass einzelne Schritte verschoben werden, um UserControls zu trennen, um das Hauptfenster der Anwendung so schlank wie möglich zu halten. Ich habe jedoch Probleme, das UserControl in das Hauptfenster aufzunehmen, da Bildpfade nach dem Verschieben des XAML in eine separate UserControl-Datei verändert werden.Weird UserControl-Bildpfadverhalten in Blend 4 und WPF 4.0

Dieser Code funktioniert, wenn es in das Hauptfenster XAML gesetzt ist:

<Button Grid.Row="1" Grid.Column="2" Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" Margin="20" VerticalAlignment="Bottom" Style="{DynamicResource ImageButton}"> 
    <Button.Background> 
    <ImageBrush ImageSource="/Images/Extra/motor_boat_2.jpg" Stretch="UniformToFill"/> 
    </Button.Background> 
</Button> 

Aber wenn ich diesen Code in eine separate Benutzersteuerung bewegen und sie in das Hauptfenster der Designer wirft und Ausnahme:

IOException: Die Ressource 'images/extra/sailing_boat.jpg' konnte nicht gefunden werden.

Ich habe versucht, ein paar verschiedene Syntaxen verwendet, aber alle scheitern, manchmal das %ProgramFiles% Verzeichnis mit, ein anderes Mal den absoluten Pfad zur relativen Umwandlung (wie oben). Manchmal schlägt die Build Project-Operation in Blend 4 daher fehl.

Alle Bilder werden als Ressource markiert mit Build Action auf Immer kopieren.

VisualStudio hat kein Problem beim Erstellen und Ausführen der Anwendung, das UserControl wird ordnungsgemäß in der laufenden Anwendung angezeigt, ohne dass Ausnahmen ausgelöst werden.

EDIT:

mit relativen Pfaden in dem Benutzersteuerelement und dann den Aufbau und die Anwendung von Visual Studio läuft und Zurückschalten korrekt die Bilder angezeigt zu mischen, bis die nächsten Änderung an das Benutzersteuerelement.

Antwort

0

Verwenden Pack URI wie folgt vor:

Uri uri = new Uri("pack://application:,,,/Images/Extra/motor_boat_2.jpg"); 
+0

, dass die erste Form von Pfaden war ich versucht, hat nicht geholfen. Es zeigte sich korrekt in VS, aber nicht in Blend. Ich habe die Frage bearbeitet, um einen Fall einzuschließen, in dem es funktioniert hat. –