XamlParseException mit dem Silverlight Toolkit-Steuerelement in Expression Blend

8

Ich habe ein merkwürdiges Problem, wenn ich mein UserControl in Expression Blend öffne, wenn ich ein Silverlight Toolkit-Steuerelement verwende. Mein Benutzersteuerelement verwendet das ListBoxDragDropTarget des Toolkits wie folgt:

%Vor%

Alles funktioniert wie erwartet zur Laufzeit und sieht in Visual Studio 2008 gut aus. Wenn ich jedoch versuche, mein Benutzersteuerelement in Blend zu öffnen, bekomme ich XamlParseException: [Line: 0 Position: 0] und ich kann sehe nichts in der Entwurfsansicht. Genauer beschwert sich Blend:

  

Das Element "ListBoxDragDropTarget" konnte wegen eines Problems mit System.Windows.Controls.ListBoxDragDropTarget: TargetType mismatch nicht angezeigt werden.

Meine Silverlight-Anwendung verweist auf System.Windows.Controls.Toolkit vom Nov. 2009-Toolkit-Release, und ich habe dafür gesorgt, dass diese Namespace-Deklarationen für das ListBoxDragDropTarget enthalten sind:

%Vor%

Wenn ich den ListBoxDragDropTarget-Steuerelementwrapper auskommentiere und die ListBox einfach verlasse, kann ich in der Entwurfsansicht alles ohne Fehler sehen. Außerdem habe ich festgestellt, dass dies mit einer Vielzahl von Silverlight Toolkit-Steuerelementen geschieht, weil ich ListBoxDragDropTarget auskommentiere und durch

ersetze %Vor%

In Blend tritt derselbe genaue Fehler auf. Noch seltsamer ist, dass wenn ich eine brandneue Silverlight-Anwendung in Blend eintrage, ich diese Toolkit-Elemente ohne irgendeinen Fehler hinzufügen kann, so scheint es etwas dummes zu sein, das mit meinen Projektreferenzen zu den Toolkit-Assemblys passiert.

Ich bin mir ziemlich sicher, dass das etwas mit dem Laden der Standardstile für die Toolkit-Steuerelemente von generic.xaml zu tun hat, da der Fehler mit dem TargetType zu tun hat und Blend wahrscheinlich versucht, die Standardstile zu laden / p>

Ist jemand schon einmal auf dieses Problem gestoßen oder hat er irgendwelche Ideen, was mein Problem sein könnte?

    
Dan Auclair 20.01.2010, 19:51
quelle

4 Antworten

11

Hallo, wir hatten genau das gleiche Problem, wir haben es gelöst, indem wir die Referenzen in dem Projekt überprüft haben, das dieses Problem hatte. Alle referenzierten Toolkit-Assemblys sollten sich im selben Verzeichnis auf der Festplatte befinden.

Unser Projektverweis auf die System.Windows.Controls.Toolkit.dll "sprang" immer auf den ursprünglichen Pfad zurück, der unser Problem verursacht hat. Wir haben das Problem gelöst, indem wir die Projektdatei in Notepad ++ (oder einem beliebigen Texteditor) editiert und den Pfad, in dem die Assembly gefunden werden kann, fest programmiert haben.

Hoffe, das hilft.

    
Michel Tol 17.08.2010, 13:43
quelle
5

Für Visual Studio (vielleicht auch Blend) müssen Sie eine Referenz hinzufügen:

System.Windows.Controls.Toolkit.Internals.dll

"C: \ Programme \ Microsoft SDKs \ Silverlight \ v4.0 \ Toolkit \ Apr10 \ Bin \ System.Windows.Controls.Toolkit.Internals.dll"

    
Simon_Weaver 13.07.2010 06:02
quelle
1

Ich benutze Silverlight 5 toolkit und% XamlParseException bei Verwendung BusyIndicator toolkit Kontrolle in Expression Blend für SL 5, alle oben genannten Lösungen nicht geholfen, aber ich fand eine andere Problemumgehung, es ist ziemlich schmutzig, aber erlaubt mir zu machen BusyIndecator funktioniert in Expression Blend,

  1. leitet von der Kontrolle ab

    %Vor%
  2. Erstellen Sie einen Stil für das abgeleitete Steuerelement (kopieren Sie einfach den Stil von BusyIndicator source code in themes / generic.xaml und ändern Sie den Zieltyp in local:BusyIndicatorEx )

Xusan 09.04.2012 11:46
quelle
0

Ich hatte das gleiche Problem, das gelöst wurde, indem eine Dummy-Referenz im Code hinter dem Wrap-Panel eingefügt wurde.

Ich weiß, dass es ein kleines C ++ y ist, aber ich kann mir vorstellen, dass wir indirekten Verweis auf das Wrap-Panel innerhalb einer Vorlage haben und nicht auf der obersten Seite, damit der Loader nicht weiß, was er bei der Initialisierung laden soll. Ich verstehe den genauen Grund aber sehr gerne.

Ich habe gerade auf System.Windows.Controls.Toolkit verwiesen und führe folgendes Mitglied im folgenden Code ein:

%Vor%     
Afshin 01.12.2012 18:24
quelle