Přidání okna nástroje
V tomto názorném postupu se dozvíte, jak vytvořit okno nástroje a integrovat ho do sady Visual Studio následujícími způsoby:
Přidejte ovládací prvek do okna nástroje.
Přidejte panel nástrojů do okna nástroje.
Přidejte na panel nástrojů příkaz.
Implementujte příkazy.
Nastavte výchozí umístění pro okno nástroje.
Požadavky
Sada Visual Studio SDK je součástí volitelné funkce v nastavení sady Visual Studio. Další informace naleznete v tématu Instalace sady Visual Studio SDK.
Vytvoření okna nástroje
Vytvořte projekt s názvem FirstToolWindow pomocí šablony VSIX a přidejte vlastní šablonu okna nástrojů s názvem FirstToolWindow.
Poznámka:
Další informace o vytvoření rozšíření pomocí okna nástroje naleznete v tématu Vytvoření rozšíření s oknem nástroje.
Přidání ovládacího prvku do okna nástroje
Odeberte výchozí ovládací prvek. Otevřete Soubor FirstToolWindowControl.xaml a odstraňte tlačítko Click Me! .
V panelu nástrojů rozbalte část Všechny ovládací prvky WPF a přetáhněte ovládací prvek Media Element do formuláře FirstToolWindowControl. Vyberte ovládací prvek a v okně Properties pojmenujte tento prvek mediaElement1.
Přidání panelu nástrojů do okna nástroje
Přidáním panelu nástrojů následujícím způsobem zaručujete, že jeho přechody a barvy jsou konzistentní se zbytkem integrovaného vývojového prostředí (IDE).
V Průzkumník řešení otevřete FirstToolWindowPackage.vsct. Soubor .vsct definuje grafické prvky uživatelského rozhraní (GUI) v okně nástroje pomocí XML.
<Symbols>
V části najděte<GuidSymbol>
uzel, jehožname
atribut jeguidFirstToolWindowPackageCmdSet
. Do seznamu<IDSymbol>
prvků v tomto uzlu přidejte následující dva<IDSymbol>
prvky, které definují panel nástrojů a skupinu panelů nástrojů.<IDSymbol name="ToolbarID" value="0x1000" /> <IDSymbol name="ToolbarGroupID" value="0x1001" />
Přímo nad
<Buttons>
částí vytvořte<Menus>
oddíl, který se podobá tomuto:<Menus> <Menu guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" priority="0x0000" type="ToolWindowToolbar"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" /> <Strings> <ButtonText>Tool Window Toolbar</ButtonText> <CommandName>Tool Window Toolbar</CommandName> </Strings> </Menu> </Menus>
Existuje několik různých druhů nabídek. Tato nabídka je panel nástrojů v okně nástroje definovaný jeho
type
atributem.id
Nastaveníguid
tvoří plně kvalifikované ID panelu nástrojů.<Parent>
Obvykle je nabídka obsahující skupinu. Panel nástrojů je však definován jako vlastní nadřazený objekt. Proto se stejný identifikátor používá pro<Menu>
prvky a<Parent>
prvky. Atributpriority
je jen 0.Panely nástrojů se podobají nabídkám mnoha způsoby. Například stejně jako nabídka může mít skupiny příkazů, panely nástrojů můžou mít také skupiny. (V nabídkách jsou skupiny příkazů oddělené vodorovnými čarami. Na panelech nástrojů nejsou skupiny oddělené oddělovači vizuálů.)
<Groups>
Přidejte oddíl, který obsahuje<Group>
prvek. Tím se definuje skupina, jejíž ID jste deklarovali v oddílu<Symbols>
.<Groups>
Přidejte oddíl těsně za<Menus>
oddíl.<Groups> <Group guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID" priority="0x0000"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" /> </Group> </Groups>
Nastavením nadřazeného identifikátoru GUID a ID na identifikátor GUID a ID panelu nástrojů přidáte skupinu na panel nástrojů.
Přidání příkazu na panel nástrojů
Na panel nástrojů přidejte příkaz, který se zobrazí jako tlačítko.
<Symbols>
V části deklarujte následující prvky IDSymbol hned za deklaracemi panelu nástrojů a skupiny panelů nástrojů.<IDSymbol name="cmdidWindowsMedia" value="0x0100" /> <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />
Přidejte prvek Button uvnitř oddílu
<Buttons>
. Tento prvek se zobrazí na panelu nástrojů v okně nástroje s ikonou Hledat (lupa).<Button guid="guidFirstToolWindowPackageCmdSet" id="cmdidWindowsMediaOpen" priority="0x0101" type="Button"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID"/> <Icon guid="guidImages" id="bmpPicSearch" /> <Strings> <CommandName>cmdidWindowsMediaOpen</CommandName> <ButtonText>Load File</ButtonText> </Strings> </Button>
Otevřete FirstToolWindowCommand.cs a přidejte následující řádky do třídy hned za existující pole.
public const string guidFirstToolWindowPackageCmdSet = "00000000-0000-0000-0000-0000"; // get the GUID from the .vsct file public const uint cmdidWindowsMedia = 0x100; public const int cmdidWindowsMediaOpen = 0x132; public const int ToolbarID = 0x1000;
Tímto způsobem zpřístupníte příkazy v kódu.
Přidání vlastnosti MediaPlayer do FirstToolWindowControl
Z obslužných rutin událostí pro ovládací prvky panelu nástrojů musí mít váš kód přístup k Přehrávač médií ovládací prvek, což je podřízená Třída FirstToolWindowControl.
V Průzkumník řešení klepněte pravým tlačítkem myši FirstToolWindowControl.xaml, klepněte na tlačítko Zobrazit kód a přidejte následující kód do FirstToolWindowControl třídy.
public System.Windows.Controls.MediaElement MediaPlayer
{
get { return mediaElement1; }
}
Vytvoření instance okna nástroje a panelu nástrojů
Přidejte panel nástrojů a příkaz nabídky, který vyvolá dialogové okno Otevřít soubor a přehraje vybraný multimediální soubor.
Otevřete FirstToolWindow.cs a přidejte následující
using
direktivy:using System.ComponentModel.Design; using System.Windows.Forms; using Microsoft.VisualStudio.Shell.Interop;
Uvnitř FirstToolWindow třídy přidejte veřejný odkaz na FirstToolWindowControl ovládacího prvku.
public FirstToolWindowControl control;
Na konci konstruktoru nastavte tuto řídicí proměnnou na nově vytvořený ovládací prvek.
control = new FirstToolWindowControl(); base.Content = control;
Vytvořte instanci panelu nástrojů uvnitř konstruktoru.
this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.ToolbarID); this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP;
V tomto okamžiku by měl konstruktor FirstToolWindow vypadat takto:
public FirstToolWindow() : base(null) { this.Caption = "FirstToolWindow"; this.BitmapResourceID = 301; this.BitmapIndex = 1; control = new FirstToolWindowControl(); base.Content = control; this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.ToolbarID); this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP; }
Přidejte příkaz nabídky na panel nástrojů. Do třídy FirstToolWindowCommand.cs přidejte následující direktivu using:
using System.Windows.Forms;
V FirstToolWindowCommand třídy, přidejte následující kód na konec ShowToolWindow() metoda. Příkaz ButtonHandler se implementuje v další části.
// Create the handles for the toolbar command. var mcs = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var toolbarbtnCmdID = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.cmdidWindowsMediaOpen); var menuItem = new MenuCommand(new EventHandler( ButtonHandler), toolbarbtnCmdID); mcs.AddCommand(menuItem);
Implementace příkazu nabídky v okně nástroje
V FirstToolWindowCommand třídy přidejte ButtonHandler metoda, která vyvolá Open File dialog. Když je vybraný soubor, přehraje multimediální soubor.
V FirstToolWindowCommand třídy přidejte privátní odkaz na FirstToolWindow okno, které se vytvoří v FindToolWindow() metoda.
private FirstToolWindow window;
Změňte metodu ShowToolWindow() tak, aby nastavil okno, které jste definovali výše (aby obslužná rutina příkazu ButtonHandler měl přístup k ovládacímu prvku okna. Zde je kompletní ShowToolWindow() metoda.
private void ShowToolWindow(object sender, EventArgs e) { window = (FirstToolWindow) this.package.FindToolWindow(typeof(FirstToolWindow), 0, true); if ((null == window) || (null == window.Frame)) { throw new NotSupportedException("Cannot create tool window"); } IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); var mcs = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var toolbarbtnCmdID = new CommandID(new Guid(FirstToolWindowCommandguidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.cmdidWindowsMediaOpen); var menuItem = new MenuCommand(new EventHandler( ButtonHandler), toolbarbtnCmdID); mcs.AddCommand(menuItem); }
Přidejte metodu ButtonHandler. Vytvoří soubor OpenFileDialog, aby uživatel určil multimediální soubor, který se má přehrát, a přehraje vybraný soubor.
private void ButtonHandler(object sender, EventArgs arguments) { OpenFileDialog openFileDialog = new OpenFileDialog(); DialogResult result = openFileDialog.ShowDialog(); if (result == DialogResult.OK) { window.control.MediaPlayer.Source = new System.Uri(openFileDialog.FileName); } }
Nastavení výchozí pozice pro okno nástroje
Dále zadejte výchozí umístění v integrovaném vývojovém prostředí (IDE) pro okno nástroje. Informace o konfiguraci pro okno nástroje jsou v souboru FirstToolWindowPackage.cs .
V FirstToolWindowPackage.cs vyhledejte ProvideToolWindowAttribute atribut třídy
FirstToolWindowPackage
, který předává FirstToolWindow typ konstruktoru. Chcete-li zadat výchozí pozici, musíte do konstruktoru přidat další parametry v následujícím příkladu.[ProvideToolWindow(typeof(FirstToolWindow), Style = Microsoft.VisualStudio.Shell.VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
První pojmenovaný parametr je
Style
a jeho hodnota jeTabbed
, což znamená, že okno bude tabulátorem v existujícím okně. Umístění ukotvení je určeno parametremWindow
, v tomto případě identifikátor GUID Průzkumník řešení.Poznámka:
Další informace o typech oken v integrovaném vývojovém prostředí (IDE) naleznete v tématu vsWindowType.
Otestování okna nástroje
Stisknutím klávesy F5 otevřete novou instanci experimentálního sestavení sady Visual Studio.
V nabídce Zobrazení přejděte na položku Ostatní okna a klepněte na tlačítko První okno nástroje.
Okno nástroje přehrávače médií by se mělo otevřít ve stejné pozici jako Průzkumník řešení. Pokud se stále zobrazuje ve stejné pozici jako předtím, resetujte rozložení okna (Okno / Obnovit rozložení okna).
Klikněte na tlačítko (má ikonu Hledat ) v okně nástroje. Vyberte podporovaný zvukový soubor nebo videosoubor, například C:\windows\media\chimes.wav a stiskněte Otevřít.
Měl bys slyšet zvuk zvonku.