Расширенные возможности Visual Studio
Оценить
(0 голоса)
Надстройками Visual Studio можно управлять при помощи менеджера Add-in Manager в Vis­ual Studio. Он позволяет вам сделать две вещи: загрузить и выгрузить любую зарегистриро­ванную надстройку и указать, как надстройку можно загружать. Для доступа к Add-in Man­ager (рис. 13.9) выберите меню Tools | Add-in Manager. Рис. 13.9. Управление надстройками Это диалоговое окно будет всегда выводить список всех имеющихся на локальном компьюте­ре надстроек. Установка или снятие флажка рядом с названием надстройки приведет к немед­ленной загрузке или выгрузке надстройки. Флажок Startup определяет— будет ли данная надстройка загружаться автоматически при запуске Visual Studio. Флажок Command Line вы­полняет то же самое для случая, когда Visual…
Оценить
(0 голоса)
Для программного управления надстройками используйте коллекцию DTE.Addins, которая содержит экземпляр Addin для каждой зарегистрированной надстройки (как загруженной, так и нет). Вы можете напрямую ссылаться на надстройки (из коллекции DTE.Addins) по их имени следующим образом: Addin addin = this.DTE.Addins.ItemC'MyFirstAddln"); Вы можете использовать свойства объекта надстройки для того, чтобы определить — загружена ли она, узнать ее имя, а также получить ProglD надстройки. bool isLoaded = addin.Connected; string паше = addin.Name; string id = addin.ProglD; Примечание Мы используем термин "зарегистрированный" для обозначения надстройки, которая была инсталлирована на локальном компьютере и зарегистрирована в Visual Studio. В версиях до Visual Studio 2005 это означало, что…
Оценить
(0 голоса)
Для начала процесса разработки вы создаете новое решение и проект типа Visual Studio Add-in с именем ColorSelectorAddln. Мастер Add-in Wizard создаст для вас код внутри клас­са Connect (точно так же, как это было сделано в начале данной главы). Класс Connect — это то место, где должен находиться весь код для интегрированной среды и код специфич­ный для объектной модели расширяемости. Кроме основных инструкций надстройки вам понадобится также создать класс типа User Control, который инкапсулирует пользовательский интерфейс, а также логику обработки для надстройки.
Оценить
(0 голоса)
Сначала вы можете заняться размещением пользовательского элемента управления там, где имеются все нужные вам функциональные возможности. После того как у вас появится ра­бочий элемент управления, вы можете начать подключать его к Visual Studio при помощи класса Connect (созданного мастером Add-in Wizard). Рис. 13.10. Пользовательский элемент управления PaletteControl Добавьте пользовательский элемент управления PaletteControl в проект надстройки (при по­мощи выбора Project | Add User Control). После добавления элемента управления вы должны поместить девять элементов управления на поверхность конструирования пользовательского элемента управления. Во-первых, добавьте поле изображения; оно будет использоваться для показа цветовой палитры, хранимой как простое растровое изображение в файле ресурса (в данном…
Оценить
(0 голоса)
Теперь, когда пользовательский интерфейс уже есть, мы можем сконцентрироваться на ко­де. Сначала вы можете добавить обработчик события для движений мыши по полю изобра­жения палитры. При помощи обработчика события MouseMove вы можете мгновенно обно­вить ваши метки и второе поле изображения (при движении указателя мыши по изображению палитры): public PaletteControl() { InitializeComponent(); this.pictureBoxPalette.MouseMove += new MduseEventHandler(pictureBoxPalette_MouseMove); this.pictureBoxPalette.Cursor = System.Windows.Forms.Cursors.Cross; } void pictureBoxPalette_MouseMove(object sender, MouseEventArgs e) { // Получить цвет под текущим положением указателя мыши Color color = GetPointColor(е.Х, e.Y); // Обновить метки RGB и второе поле изображения при помощи полученного цвета DisplayColor(color); // Сгенерировать наш код на языке Visual Basic или C#…
Оценить
(0 голоса)
Класс PaletteControl предоставляет два свойства: Code — это строковое свойство, кото­рое содержит код цветовой структуры, сгенерированный при щелчке по палитре, а GenerateVB — это свойство булева типа, которое указывает, какой код должен генериро­вать элемент управления — на языке Visual Basic (GenerateVB = true) или на языке C# (GenerateVB = false). Далее приведены объявления полей и свойств для этих двух свойств: string _code = ,,н; public string Code { get { return _code; } } bool _generateVB = false; public bool GenerateVB { get { return _generateVB; } }
Оценить
(0 голоса)
Когда указатель мыши двигается по полю изображения, вам нужно перехватывать компо­ненты цвета точек, находящихся непосредственно под курсором (GetPointColor), обнов­лять метки и второе поле изображения (чтобы они отражали этот цвет— DisplayColor), а затем генерировать код для реализации соответствующей цветовой структуры (setCode). Далее даны реализации этих процедур: III <suinmary> HI Возвращает структуру Color, представляющую цвет пиксела /// в указанных координатах х и у. /// </summary> III <param name="x"></parain> III <param name=My"></param> III <returns>Структура Color</returns> private Color GetPointColor(int x, int y) { Il   Получить растровое изображение из поля изображения палитры Bitmap bmp = (Bitmap)pictureBoxPalette.Image; // Использовать GetPixel для получения цветовой структуры // для…
Оценить
(0 голоса)
Поскольку вам понадобится для элемента управления некий способ сообщения о том, что пользователь выбрал цвет (например, щелкнул по палитре), то вы также определяете собы­тие пользовательского класса управления, которое происходит каждый раз, когда на изо­бражении палитры регистрируется щелчок мыцш: public event EventHandler ColorSelected; protected virtual void OnColorSelected(EventArgs e) { if (ColorSelected != null) ColorSelected(this, e); } private void pictureBoxPalette_Click(object sender, EventArgs e) { OnColorSelected(new EventArgs()); } Совет Для изоляции и тестирования пользовательского элемента управления вы можете добавить в решение проект типа Windows Forms и встроить элемент управления в форму Windows для его тестирования. Просто перетащите элемент управления на форму и запустите…
Оценить
(0 голоса)
Класс Connect уже имеет основной код надстройки; теперь настало время вернуться к нему и добавить код для приведения в действие пользовательского элемента управления. Вы хо­тите, чтобы надстройка без проблем интегрировалась в среду разработки; для этого вы мо­жете использовать окно инструмента (для отображения уже созданного пользовательского элемента управления). Припоминая обсуждение объектной модели расширяемости, вы знаете, что коллекция Windows2 имеет метод CreateToolWindow2, который позволяет вам создавать ваши собст­венные нестандартные окна инструментов. Примечание Предыдущие версии Visual Studio требовали от вас создания промежуточного эле­мента управления (при помощи языка C++), который обеспечивал бы показ элемента управления в окне инструмента. Окно инструмента (в свою очередь) было…
Оценить
(0 голоса)
Поскольку вы хотите, чтобы окно инструмента создавалось и отображалось после загрузки надстройки, то вызов метода CreateToolWindow2 надо поместить в метод Connect. OnConnection. Сначала вы настраиваете локальный объект, чтобы он указывал на коллекцию DTE. ToolWindows: II   Коллекция DTE.ToolWindows Windows2 toolWindows= (Windows2)_applicationObject.Windows; Затем вам нужен объект, в котором будет храниться ссылка на создаваемое вами окно инст­румента: // Объект для ссылки на создаваемое окно инструмента Window2 toolWindow; И наконец, вам нужно создать параметры, необходимые для метода CreateToolWindow2: // Объект указателя места заполнения; в конечном итоге будет ссылаться //на пользовательский элемент управления object paletteObject = null; // Данный раздел указывает путь и имя класса…
© 2017 www.visualstudios.ru. Все права защищены.