Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda aşağıdaki yollarla bir araç penceresi oluşturmayı ve bunu Visual Studio ile tümleştirmeyi öğreneceksiniz:
Araç penceresine bir denetim ekleyin.
Araç penceresine araç çubuğu ekleyin.
Araç çubuğuna bir komut ekleyin.
Komutları uygulayın.
Araç penceresi için varsayılan konumu ayarlayın.
Önkoşullar
Visual Studio SDK'sı, Visual Studio kurulumuna isteğe bağlı bir özellik olarak eklenir. Daha fazla bilgi için bkz. Visual Studio SDK yükleme.
Araç penceresi oluşturma
VSIX şablonunu kullanarak FirstToolWindow adlı bir proje oluşturun ve FirstToolWindowadlı özel bir araç penceresi öğesi şablonu ekleyin.
Dikkat
Araç penceresiyle uzantı oluşturma hakkında daha fazla bilgi için bkz. Araç penceresiyle uzantı oluşturma.
Araç penceresine denetim ekleme
Varsayılan denetimi kaldırın. FirstToolWindowControl.xaml dosyasını açın ve Tıkla! düğmesini silin.
Araç Kutusu'nda, Tüm WPF Denetimleri bölümünü genişletin ve Medya Öğesi denetimini FirstToolWindowControl formuna sürükleyin. Denetimi seçin ve Özellikler penceresinde bu öğeyi mediaElement1 adlandırın.
Araç penceresine araç çubuğu ekleme
Aşağıdaki şekilde bir araç çubuğu ekleyerek, gradyanlarının ve renklerinin IDE'nin geri kalanıyla tutarlı olduğundan emin olursunuz.
Çözüm Gezgini'nde, FirstToolWindowPackage.vsctdosyasını açın. .vsct dosyası, XML kullanarak araç pencerenizdeki grafik kullanıcı arabirimi (GUI) öğelerini tanımlar.
<Symbols>
bölümünde,name
özniteliğiguidFirstToolWindowPackageCmdSet
olan<GuidSymbol>
düğümünü bulun. Bir araç çubuğu ve araç çubuğu grubu tanımlamak için aşağıdaki iki<IDSymbol>
öğesini bu düğümdeki<IDSymbol>
öğeleri listesine ekleyin.<IDSymbol name="ToolbarID" value="0x1000" /> <IDSymbol name="ToolbarGroupID" value="0x1001" />
<Buttons>
bölümünün hemen üstünde şuna benzer bir<Menus>
bölümü oluşturun:<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>
Birkaç farklı menü türü vardır. Bu menü, araç penceresindeki
type
özniteliği tarafından tanımlanan bir araç çubuğudur.guid
veid
ayarları, araç çubuğunun tam kimliğini oluşturur. Genellikle, bir menüdeki<Parent>
, içeren gruptur. Ancak, araç çubuğu kendi üst öğesi olarak tanımlanır. Bu nedenle,<Menu>
ve<Parent>
öğeleri için aynı tanımlayıcı kullanılır.priority
özniteliği yalnızca '0'dır.Araç çubukları menülere birçok yönden benzer. Örneğin, bir menüde komut grupları olabileceği gibi, araç çubuklarının grupları da olabilir. (Menülerde, komut grupları yatay çizgilerle ayrılır. Araç çubuklarında gruplar görsel ayırıcılarla ayrılmaz.)
<Group>
öğesi içeren bir<Groups>
bölümü ekleyin. Bu, kimliğini<Symbols>
bölümünde bildirdiğiniz grubu tanımlar.<Menus>
bölümünün hemen arkasına<Groups>
bölümünü ekleyin.<Groups> <Group guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID" priority="0x0000"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" /> </Group> </Groups>
Ana GUID ve kimliği, araç çubuğunun GUID ve kimliği olarak ayarlayarak grubu araç çubuğuna eklersiniz.
Araç çubuğuna komut ekleme
Araç çubuğuna düğme olarak görüntülenen bir komut ekleyin.
<Symbols>
bölümünde, araç çubuğu ve araç çubuğu grubu bildirimlerinden hemen sonra aşağıdaki IDSymbol öğelerini bildirin.<IDSymbol name="cmdidWindowsMedia" value="0x0100" /> <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />
<Buttons>
bölümünün içine bir Button öğesi ekleyin. Bu öğe araç penceresinde araç çubuğunda Arama (büyüteç) simgesiyle görüntülenir.<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>
FirstToolWindowCommand.cs açın ve var olan alanların hemen arkasına sınıfına aşağıdaki satırları ekleyin.
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;
Bunun yapılması, komutlarınızın kodda kullanılabilir olmasını sağlar.
FirstToolWindowControl'e MediaPlayer özelliği ekleme
Araç çubuğu denetimlerinin olay işleyicilerinden kodunuzun FirstToolWindowControl sınıfının alt öğesi olan Media Player denetimine erişebilmesi gerekir.
Çözüm Gezgini, FirstToolWindowControl.xaml sağ tıklayın, Kodu Görüntüleöğesine tıklayın ve FirstToolWindowControl sınıfına aşağıdaki kodu ekleyin.
public System.Windows.Controls.MediaElement MediaPlayer
{
get { return mediaElement1; }
}
Araç penceresini ve araç çubuğunu oluşturun
Dosya Aç iletişim kutusunu çağıran ve seçili medya dosyasını yürüten bir araç çubuğu ve menü komutu ekleyin.
FirstToolWindow.cs açın ve aşağıdaki
using
yönergelerini ekleyin:using System.ComponentModel.Design; using System.Windows.Forms; using Microsoft.VisualStudio.Shell.Interop;
FirstToolWindow sınıfının içine FirstToolWindowControl denetimine genel bir başvuru ekleyin.
public FirstToolWindowControl control;
Oluşturucunun sonunda, bu denetim değişkenini yeni oluşturulan denetim olarak ayarlayın.
control = new FirstToolWindowControl(); base.Content = control;
Oluşturucunun içinde araç çubuğunu oluştur.
this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.ToolbarID); this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP;
Bu noktada, FirstToolWindow oluşturucu şöyle görünmelidir:
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; }
Menü komutunu araç çubuğuna ekleyin. FirstToolWindowCommand.cs sınıfına aşağıdaki using yönergesini ekleyin:
using System.Windows.Forms;
FirstToolWindowCommand sınıfında, ShowToolWindow() yönteminin sonuna aşağıdaki kodu ekleyin. ButtonHandler komutu sonraki bölümde uygulanacaktır.
// 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);
Araç penceresinde menü komutu uygulamak için
FirstToolWindowCommand sınıfında, Dosya Aç iletişim kutusunu çağıran bir ButtonHandler yöntemi ekleyin. Bir dosya seçildiğinde, medya dosyasını yürütür.
FirstToolWindowCommand sınıfında, FindToolWindow() yönteminde oluşturulan FirstToolWindow penceresine özel bir başvuru ekleyin.
private FirstToolWindow window;
Yukarıda tanımladığınız pencereyi ayarlamak için ShowToolWindow() yöntemini değiştirin (böylece ButtonHandler komut işleyicisi pencere denetimine erişebilir. Tam ShowToolWindow() yöntemi aşağıdadır.
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); }
ButtonHandler yöntemini ekleyin. Kullanıcının yürütülecek medya dosyasını belirtmesi için bir OpenFileDialog oluşturur ve ardından seçili dosyayı yürütür.
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); } }
Araç penceresi için varsayılan konumu ayarlama
Ardından, araç penceresi için IDE'de varsayılan bir konum belirtin. Araç penceresinin yapılandırma bilgileri FirstToolWindowPackage.cs dosyasında yer alır.
FirstToolWindowPackage.csiçinde, firstToolWindow türünü oluşturucuya geçiren
FirstToolWindowPackage
sınıfında ProvideToolWindowAttribute özniteliğini bulun. Varsayılan bir konum belirtmek için, aşağıdaki örnekte oluşturucuya daha fazla parametre eklemeniz gerekir.[ProvideToolWindow(typeof(FirstToolWindow), Style = Microsoft.VisualStudio.Shell.VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
İlk adlandırılmış parametre
Style
ve değeriTabbed
olur; bu da pencerenin var olan bir pencerede bir sekme olacağı anlamına gelir. Yerleştirme pozisyonu,Window
parametresi tarafından belirtilir; bu durumda Çözüm Gezgini'nin GUID'si.Dikkat
IDE'deki pencere türleri hakkında daha fazla bilgi için bkz. vsWindowType.
Araç penceresini test edin
Visual Studio deneysel derlemesinin yeni bir örneğini açmak için F5 basın.
Görünüm menüsünde, Diğer Pencereler üzerine gelin ve ardından İlk Araç Penceresi'nitıklayın.
Media Player araç penceresi Çözüm Gezginiile aynı konumda açılmalıdır. Yine de öncekiyle aynı konumda görünüyorsa, pencere düzenini sıfırlayın (Pencere / Pencere Düzenini Sıfırla).
Araç penceresindeki düğmeye (Ara simgesine sahiptir) tıklayın. Desteklenen bir ses veya video dosyası seçin, örneğin, C:\windows\media\chimes.wav, ardından Aç'a basın.
Çan sesini duymalısın.