2016-04-27 8 views
3

Ich schreibe meine erste VS-Erweiterung. bisher habe ich den Code, um Text zu erhalten ausgewählt und ein Meldungsfeld angezeigt werden oder die Auswahl manipulieren:Öffnen Sie eine WPF-Fenster-App-Formular VS-Erweiterungsbefehl

die CTOR des extention ..

 private StringRefactor(Package package) 
     { 
      if (package == null) 
      { 
       throw new ArgumentNullException("package"); 
      } 

      this.package = package; 

      OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; 
      if (commandService != null) 
      { 
       var menuCommandID = new CommandID(CommandSet, CommandId); 
       var menuItem = new MenuCommand(this.MenuItemCallback, menuCommandID); 
       commandService.AddCommand(menuItem); 
      } 
     } 

Der Rückruf:

private void MenuItemCallback(object sender, EventArgs e) 
    { 
     var selection = getSelection(); 

     var selectedText = selection == null ? "No text selected..." : selection.StreamSelectionSpan.GetText(); 
     string message = string.Format(CultureInfo.CurrentCulture, "Inside {0}.MenuItemCallback()", this.GetType().FullName); 
     string title = "StringRefactor"; 

     // Show a message box to prove we were here 
     VsShellUtilities.ShowMessageBox(
      this.ServiceProvider, 
      selectedText, 
      title, 
      OLEMSGICON.OLEMSGICON_INFO, 
      OLEMSGBUTTON.OLEMSGBUTTON_OK, 
      OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); 
    } 

jetzt anstelle von VsShellUtilities.ShowMessageBox(... möchte ich ein Eingabeaufforderungsfenster öffnen, das mehrere Textfelder und OK \ Abbrechen-Taste anzeigt.

Ich dachte an c ein anderes WPF-App-Projekt zu reaktivieren und es aus dem Callback zu starten, aber ich bin mir nicht sicher, dass dies der richtige Weg ist, eine Erweiterung zu schreiben, die ein benutzerdefiniertes Tool öffnet.

Also was ist der richtige Weg, um ein benutzerdefiniertes Fenster mit Funktionalität zu öffnen von einem VISIX?

Antwort

3

Sie können eigene WPF-Dialoge in der VSIX-Erweiterung erstellen. Tatsächlich ist Visual Studio dafür ausgelegt (da die Benutzeroberfläche WPF ist).

in diesem Artikel für weitere Anweisungen:

Creating and Managing Modal Dialog Boxes

Verwandte Themen