2016-09-01 3 views
0

In meinem VSTO-Add-In auf Anwendungsebene versuche ich ein Raster zu einem UserControl hinzuzufügen, um sein Layout kohärent zu machen.Kann Raster in VSTO Word Addin nicht verwenden

Wenn ich jedoch versuche, das Raster zu deklarieren, beschwert sich Visual Studio, dass der Typ oder der Namespace "Grid" nicht gefunden werden kann. Ich habe diesen Fehler behoben, indem ich die PresentationFramework-Assembly als Projektreferenz hinzufügte und System.Windows.Controls importierte, aber jetzt habe ich ein noch größeres Problem: Visual Studio beklagt, dass "UserControl" eine mehrdeutige Referenz zwischen "System.Windows.Controls.UserControl" ist "und" System.Windows.Forms.UserControl ".

Ich überprüfte die Spitze meiner .cs-Datei und stellte fest, dass sie bereits System.Windows.Forms importierte und jetzt auch System.Windows.Controls importiert.

Ich frage mich, warum das VSTO-Projekt an Stelle von System.Windows.Controls standardmäßig System.Windows.Forms importiert hat und was der Hauptunterschied zwischen den beiden Namespaces ist, da ich in meiner WPF-Anwendung System verwende. Windows.Steuerelemente. Vielen Dank!

Antwort

1

Von Anfang an VSTO war ein Forms-basiertes Set von Werkzeugen, und XAML-basierte UI-Option ist nur aus späteren Jahren. Offensichtlich können Sie immer noch System.Windows.Forms verwenden und in Ihren XAML-Anwendungen darauf verweisen. Wenn also die XAML-Referenzen hinzugefügt werden, gibt es einige mehrdeutige Elemente, wenn beides vorhanden ist (ich tendiere immer dazu, auf die XAML- und Forms MessageBox-Mehrdeutigkeitsschnittstellen zu stoßen) Präfix die mehrdeutigen Gegenstände.

Ich versuche entweder auf der XAML-Seite voll zu sein oder entscheide mich, zur Forms-Seite zu wechseln.

Wahrscheinlich ist die VSTO, eine etwas ältere Technologie inzwischen, Projekt Templating basiert auf den Forms-Bibliotheken zu starten, aber Sie sind frei, vollständig in die XAML-Welt zu bewegen. Meine eigenen Lösungen basieren heute vollständig auf XAML, aber ich greife hin und wieder auf Formulare zurück (zum Beispiel eine schnelle Demo).

Also ist es nur eine Technologie-Wahl und VSTO ist eine lange Zeit zurück, so begann es mit Forms. Gehen Sie mit der neuen und glänzenden XAML-Technologie, wenn Sie möchten (ich bin voreingenommen, ich liebe diese Technologie) oder bleiben Sie bei der Forms-Technologie. Du kannst sie beide benutzen.

Verwandte Themen