Von
Mario Meir-Huber
19. January 2010 14:37
Eine weitere Neuerung in Silverlight 4 ist die COM-Automatisierung. Diese läuft jedoch NUR für die Windows Plattform. Dies bedeutet auch das man die COM-Automatisierung mit Vorsicht genießen soll. Damit man die COM-Automatisierung verwenden kann muss die Referenz auf Microsoft.CSharp.dll hinzugefügt werden. Diese muss explizit im Dateisystem gesucht werden, da jene in den normalen Assemblies in Visual Studio 2010 nicht angezeigt wird. Die DLL-Datei befindet sich normalerweise in den Program Files – Microsoft SDKs – Silverlight 4.
Nun erweitern wir unseren Ribbon noch ein mal um einen Button. Wichtig ist auch das die Applikation für “Out of Browser” konfiguriert ist. Wie dies funktioniert wurde bereits in Post 2 erklärt. (COM benötigt Full Trust). Den neuen Button geben wir die Bezeichnung “Open in Word”.
<Button Margin="5" Content="Open in Word" Click="Button_Click_2" />
Im Handler erstellen wir das Word-Objekt. Dies geschieht mit dem “Dynamic” Keyword. Nun sind etwas VSTO (Visual Studio Tools for Office) Kenntnisse gefordert um das Beispiel zu lösen. Zu beginn erstellen wir uns das COM-Objekt mit “Word.Application”. Danach fügen wir ein neues Dokument in Word ein. Im Dokument selbst selektieren wir eine Range (Bereich in Word, welcher zum Beispiel Text enthalten kann).
Danach überprüfen wir in unserer Silverlight-Applikation ob ein Text selektiert wurde. Wenn dies so ist, setzen wir diesen Text in die Word-Applikation ein und zeigen die Applikation an.
private void Button_Click_2(object sender, RoutedEventArgs e)
{
dynamic wordApp = ComAutomationFactory.CreateObject("Word.Application");
dynamic document = wordApp.Documents.Add();
dynamic range = document.Range();
if (!string.IsNullOrEmpty(TextArea.Selection.Text))
{
range.Text = TextArea.Selection.Text;
}
wordApp.Visible = true;
}
Text editieren …
… und in Word einfügen
Bei dieser Gelegenheit möchte ich auch auf den WPF/Silverlight Community Day hinweisen, welcher am 29. Jänner in Graz statt finden wird. Hier werden die Silverlight 4 Neuerungen nochmal beleuchtet.
Mario Meir-Huber
www.meirhuber.de