將 Visual Studio 的命令加入至起始頁
當您建立自訂的起始頁時,您可以新增 Visual Studio 的指令。 本文將告訴您不同的方式,若要將 Visual Studio 的命令繫結至 XAML 頁面上的物件開始。
如需有關在 XAML 中的命令的詳細資訊,請參閱命令概觀
也將命令加入命令
起始頁的專案範本中定義的別名Microsoft.VisualStudio.PlatformUI和Microsoft.VisualStudio.Shell命名空間,如下所示。
您可以使用vs:別名,以將 Visual Studio 的命令繫結至 XAML 頁面上控制藉由設定Command屬性,控制項的vs:VSCommands.ExecuteCommand。 然後您可以設定CommandParameter執行,如下列範例所示的指令名稱的屬性。
<Button Name="btnNewProj" Content="New Project"
Command="{x:Static vs:VSCommands.ExecuteCommand}"
CommandParameter="File.NewProject" >
</Button>
注意事項 |
---|
x:別名,這指的是 XAML 結構描述,就需要在所有指令的開頭。 |
您可以設定的值Command屬性,以便能從任何命令命令視窗。 如需可用命令的清單,請參閱Visual Studio 命令別名。
如果要新增的命令需要額外的參數,您可以將它加入值CommandParameter屬性。 使用空格,如下列範例所示的指令從不同的參數。
<Button Content="Web Search"
Command="{x:Static vs:VSCommands.ExecuteCommand}"
CommandParameter="View.WebBrowser www.bing.com" />
好呼叫命令的擴充功能
您可以使用相同的語法用來呼叫其他 Visual Studio 的命令,從已註冊的 VSPackages 呼叫指令。 比方說,如果已安裝的 VSPackage 將首頁命令到檢視 ] 功能表中,您就可以呼叫該指令藉由設定CommandParameter到View.HomePage。
注意事項 |
---|
如果您呼叫 VSPackage 相關聯的命令時,必須載入封裝時叫用命令。 |
若要呼叫 Visual Studio 的增益集與相關聯的命令,您必須使用增益集的完整命令名稱。 如需詳細資訊,請參閱 如何:在命令列上執行增益集。
從組件中新增命令
若要從組件,或沒有關聯的功能表命令的 VSPackage 中存取程式碼,請呼叫指令,必須建立組件的別名,然後再呼叫的別名。
若要從組件呼叫命令
在您的方案中,加入組件的參考。
在 StartPage.xaml 檔案的頂端,加入命名空間指示詞的組件,,如下列範例所示。
xmlns:vsc="clr-namespace:WebUserControl;assembly=WebUserControl"
叫用命令,藉由設定Command的 XAML 物件,如下列範例所示的屬性。
Xaml
<vs:Button Text="Hide me" Command="{x:Static vsc:HideControl}" .../>
注意事項 |
---|
如果您不使用 [起始頁] 專案範本,您必須複製您的組件然後再貼入。.\Visual Studio 的安裝資料夾\Common7\IDE\PrivateAssemblies\,以確定它載入之前呼叫它。 |
將命令加入自動化模型
您可以從起始頁,在標記和程式碼中,以存取 Visual Studio 的 automation 模型。
在標記中,您可以藉由存取 Automation 模型繫結標記延伸語法來呼叫DTE物件。 使用這種方法,您可以繫結至簡單的屬性,傳回集合,例如,但您不能繫結至方法或服務。 下列範例所示TextBlock控制項所繫結至Name屬性,以及ListBox列舉的控制項Caption屬性所傳回集合中的Windows屬性。
<TextBlock Text="{Binding Path=DTE.Name}" FontSize="12" HorizontalAlignment="Center"/>
<ListBox ItemsSource="{Binding Path=DTE.Windows}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Caption}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
程式碼中,您可以存取方法、 服務和自動化模型的較複雜的屬性,例如在使用者控制項,或在 XAML 頁面的程式碼後置檔案中。 執行這項操作的相同方式使用自動化模型的其他任何專案。 如需範例,請參閱 逐步解說: 使用自動化來啟動頁面上儲存使用者設定。
如需有關 Automation 模型的詳細資訊,請參閱擴充 Visual Studio 環境或參考 Automation 組件和 DTE2 物件.k
相對路徑
當您從起始頁面參考檔案路徑時,永遠使用相對路徑,以便進行不同的系統設定。 不過,不到 [\StartPages\] 資料夾,但可以解決啟動頁面上的所有相對路徑的根目錄。. \Visual Studio 的安裝資料夾\Common7\IDE\,也就是 devenv.exe 所在位置。 您可以使用 VSStartPageRelativeConverter 來設定路徑相對於起始頁檔案的位置。 執行這項操作藉由設定Source屬性之物件的vs:StartPageRelative,如下列範例所示。
<Image Source="{sp:StartPageRelative Image1.png}" Margin="20" />
當您存取 Visual Studio 或其他封裝中包含的檔案中所包含的資源時,請使用標準的相對路徑語法。