8

Ich habe ein seltsames Problem beim Öffnen eines UserControl in Expression Blend, wenn ein Silverlight Toolkit-Steuerelement verwendet wird. Mein Usercontrol nutzt die ListBoxDragDropTarget Toolkit wie folgt:XamlParseException mit Silverlight Toolkit-Steuerelement in Expression Blend

<controlsToolkit:ListBoxDragDropTarget mswindows:DragDrop.AllowDrop="True" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
     <ListBox ItemsSource="{Binding MyItemControls}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <controlsToolkit:WrapPanel/> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
     </ListBox> 
</controlsToolkit:ListBoxDragDropTarget> 

Alles zur Laufzeit erwartet funktioniert und sieht 2008 jedoch in Visual Studio in Ordnung, wenn ich versuche, meine Usercontrol in Mischung zu öffnen ich XamlParseException: [Line: 0 Position: 0] und ich kann nichts in der Entwurfsansicht sehen. Insbesondere Mischung klagt:

Das Element „ListBoxDragDropTarget“ nicht aufgrund eines Problems mit System.Windows.Controls.ListBoxDragDropTarget angezeigt werden könnte: Target stimmen nicht überein.

Meine Silverlight-Anwendung verweist System.Windows.Controls.Toolkit aus dem Toolkit Release November 2009, und ich habe dafür gesorgt, diese Namespace-Deklarationen für die ListBoxDragDropTarget enthält:

xmlns:controlsToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" 
xmlns:mswindows="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit" 

Wenn ich Kommentieren Sie den ListBoxDragDropTarget-Steuerelement-Wrapper und lassen Sie die ListBox einfach Ich kann alles gut in der Entwurfsansicht ohne Fehler sehen. Darüber hinaus wurde mir klar, dies ist mit einer Vielzahl von Silverlight Toolkit Kontrollen passiert denn wenn ich ListBoxDragDropTarget Kommentar aus und ersetzen sie durch

<controlsToolkit:BusyIndicator /> 

exakt der gleichen Fehler tritt in Mischung. 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 ziemlich sicher, dass dies etwas mit dem Laden der Standardstile für die Toolkit-Steuerelemente von seiner generic.xaml zu tun hat, da der Fehler mit dem TargetType zu tun hat und Blend versucht wahrscheinlich, die Standardstile zu laden.

Hat jemand dieses Problem vor oder hat irgendwelche Ideen, was mein Problem sein könnte?

+0

Version von Blend? – AnthonyWJones

+0

Expression Blend 3, speziell 3.0.1927.0 –

Antwort

11

Hallo wir hatten genau das gleiche Problem, wir lösten es, indem Sie die Referenzen in dem Projekt, 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.

+0

I Ich habe das Projekt, das dieses Problem hatte, vor langer Zeit rausgeworfen und andere Dinge getan, also habe ich keine Möglichkeit, das zu überprüfen. Ich werde es als die Antwort für jetzt markieren, da es aussieht, als wären andere mit diesem Problem konfrontiert funktioniert nicht für viele Leute Ich kann es wieder öffnen –

+0

Danke Mann, du hast wirklich zwei Tage Dummheit für mich gespeichert;) – Peymankh

+0

vielen dank hast du auch meinen Tag gerettet !! :) –

5

für Visual Studio (vielleicht Blend) Sie einen Verweis hinzufügen müssen:

System.Windows.Controls.Toolkit.Internals.dll

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

+0

Dies löste es für mich. Beachten Sie, dass die neueste Version (für Silverlight 5) in "C: \ Programme (x86) \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Bin \ System.Windows.Controls.Toolkit.Internals.dll – andrewpm

1

Ich verwende Silverlight 5 Toolkit und XamlParseException, wenn sie in Expression Blend für SL 5 BusyIndicator Toolkit Steuerung verwenden, werden alle oben genannten Lösungen nicht geholfen haben, aber ich fand eine andere Abhilfe, seine ziemlich schmutzig, aber erlaubt es mir BusyIndecator Arbeit zu machen in Expression Blend,

  1. stammen aus Steuer

    public class BusyIndicatorEx : BusyIndicator 
    { 
        public BusyIndicatorEx() 
        { 
         this.DefaultStyleKey = typeof(BusyIndicatorEx); 
        } 
    } 
    
  2. schaffen Stil für abgeleitete Kontrolle (nur Stil von BusyIndicator Quellcode kopieren th emes/generic.xaml und ändert Zieltyp local:BusyIndicatorEx)

+0

Wie kopiere ich der Stil von BusyIndicator? Wo ist "themes/generic.xaml"? – Jordan

0

Ich hatte das gleiche Problem, das im Code behoben wurde hinter dem Wrap-Panel eine Dummy-Referenz durch die Einführung.

Ich weiß, es ist ein wenig C++ y, aber ich kann es sich vorstellen, weil wir indirekten Verweis auf Wrap-Panel innerhalb einer Vorlage und nicht auf der Top-Level-Seite haben, so dass der Lader nicht wissen, was bei der Initialisierung geladen werden soll . Ich mag es wirklich, den genauen Grund zu verstehen.

ich im Code folgende Mitglied hinter nur System.Windows.Controls.Toolkit und einführen verwiesen:

System.Windows.Controls.WrapPanel _dummy; 
Verwandte Themen