2016-04-27 9 views
3

私は最初のVS拡張を書いています。 これまでのところ、私は選択したテキストを取得し、メッセージボックスを表示するかの選択を操作するためのコードがあります。WPFウィンドウアプリケーションフォームのVS拡張コマンドを開く

拡張子のCTOR ..

 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); 
      } 
     } 

コールバック:

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); 
    } 

VsShellUtilities.ShowMessageBox(...の代わりにいくつかのテキストボックスとok \ cancelボタンを表示するプロンプトウィンドウを開きたいと思っています。

私はcを考えました別のWPFアプリケーションプロジェクトを参照してコールバックから起動しますが、これがカスタムツールを開く拡張機能を作成する正しい方法であるかどうかはわかりません..

機能を備えたカスタムウィンドウを開くには、 VISIXから?

答えて

3

独自のWPFダイアログをVSIX拡張で作成できます。実際、Visual Studioはそのために設計されています(UIはWPFなので)。

さらに手順についてはこちらの記事を参照してください。

Creating and Managing Modal Dialog Boxes

関連する問題