Поделиться через


Пошаговое руководство: Сохранение параметров пользователя на начальной странице с помощью автоматизации

Доступ к модели автоматизации с начальной страницы и можно использовать модель автоматизации для сохранения параметров пользователя. С помощью этого пошагового руководства можно создать элемент управления, который сохраняет параметр в реестр, когда пользователь нажимает кнопку, а затем извлекает этот параметр при каждом загрузку начальной страницы. Поскольку шаблон проекта начальной страницы включается настраиваемый пользовательский элемент управления и по умолчанию вызовы XAML начальной страницы, которые контролируют, не следует изменять страницу самой запуска.

Параметры хранятся, которое создается в данном пошаговом руководстве экземпляр IVsWritableSettingsStore интерфейс, который считывает и записывает в следующем расположении реестра, когда он вызывается. HKCU \ software \ microsoft \ VisualStudio \ 10,0 \CollectionName

При запуске в экспериментальном экземпляре Visual Studio, хранилище параметров операций чтения и записи к HKCU \ программного обеспечения \ microsoft \ VisualStudio \ 10.0Exp \CollectionName.

Дополнительные сведения о том, как сохранить параметры см. в разделах сохранение состояния и Visual Studio IDE OR поддержка для сохранения состояния. Дополнительные сведения о модели автоматизации см. Расширение среды Visual Studio OR Создание ссылок на сборки автоматизации и объект DTE2.

Обязательные компоненты

Чтобы выполнить это пошаговое руководство, необходимо устанавливать SDK для Visual Studio 2010. Также следует устанавливать шаблон проекта начальной страницы.

Примечание

Дополнительные сведения о пакете SDK для Visual Studio см. в разделе интеграция SDK Visual Studio.Чтобы загрузить пакет SDK для Visual Studio см. в разделе Центр разработчиков расширяемости Visual Studio на веб-сайте MSDN.

Можно загрузить шаблон проекта начальной страницы с помощью Диспетчер расширений.

Настройка проекта

Настройка проекта для данного пошагового руководства

  1. Создайте проект начальной страницы с помощью шаблона проекта начальной страницы, как описано в разделе начальные страницы. Назовите проект SaveMySettings.

  2. IN Обозреватель решенийдобавьте ссылки на следующие сборки в проект StartPageControl:

    • EnvDTE EnvDTE80

    • Microsoft.VisualStudio.OLE.Interop

    • Microsoft.VisualStudio.Shell.Interop.10.0

    EnvDTE и EnvDTE80 сборки предоставляют объектную модель автоматизации. Сборки взаимодействия предоставляют доступ к определенным объектам в оболочке Visual Studio.

  3. Откройте MyControl.xaml.

  4. На панели язык XAML в запросах верхнего уровня UserControl определение элемента, добавьте следующее объявление события после объявления пространства имен.

    Loaded="OnLoaded"
    
  5. В области конструирования выберите главную область элемента управления, а затем нажмите клавишу DELETE.

    Это удаляет Border элемент и все в нем, и оставляет только верхнего уровня. Grid элемент.

  6. От Панель элементовперетащите a StackPanel элемент управления к сетке.

  7. Теперь перетащите a TextBlocka TextBoxи привязка к StackPanel.

  8. Добавление x: Имя атрибут TextBoxи a Click событие Button, как показано в следующем примере.

    <StackPanel Width="300" HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Width="140" FontSize="14">Enter your setting</TextBlock>
        <TextBox x:Name="txtblk" Margin="0, 5, 0, 10" Width="140" />
        <Button Click="Button_Click" Width="100">Save My Setting</Button>
    </StackPanel>
    

Реализация пользовательского элемента управления

Реализации пользовательского элемента управления

  1. На панели язык XAML, щелкните правой кнопкой мыши Click атрибут Button элемент и нажмите кнопку К обработчику события.

    Это приведет к открытию MyControl.xaml.cs и создает заглушки для обработчика Button_Click событие.

  2. Добавьте следующие действия using выписки в начало файла.

    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    using Microsoft.VisualStudio.Shell.Interop;
    using System.ComponentModel;
    
  3. Добавьте закрытое SettingsStore свойство, как показано в следующем примере.

    private IVsWritableSettingsStore _settingsStore = null;
    private IVsWritableSettingsStore SettingsStore
    {
        get
        {
            if (_settingsStore == null)
            {
                // Get a reference to the DTE from the DataContext. 
                var typeDescriptor = DataContext as ICustomTypeDescriptor;
                var propertyCollection = typeDescriptor.GetProperties();
                var dte = propertyCollection.Find("DTE", false).GetValue(
                    DataContext) as DTE2;
    
                // Get the settings manager from the DTE. 
                var serviceProvider = new ServiceProvider(
                    (Microsoft.VisualStudio.OLE.Interop.IServiceProvider)dte);
                var settingsManager = serviceProvider.GetService(
                    typeof(SVsSettingsManager)) as IVsSettingsManager;
    
                // Write the user settings to _settingsStore.
                settingsManager.GetWritableSettingsStore(
                    (uint)__VsSettingsScope.SettingsScope_UserSettings,
                    out _settingsStore);
            }
            return _settingsStore;
        }
    }
    

    Это свойство впервые получает ссылку на DTE2 интерфейс, который содержит объектную модель автоматизации из DataContext пользовательского элемента управления, а затем использует DTE для получения экземпляра IVsSettingsManager интерфейс. Затем он использует этот экземпляр для возвращения параметры текущего пользователя.

  4. Заполните Button_Click событие следующим образом.

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int exists = 0;
        SettingsStore.CollectionExists("MySettings", out exists);
        if (exists != 1)
        {
            SettingsStore.CreateCollection("MySettings");
        }
        SettingsStore.SetString("MySettings", "MySetting", txtblk.Text);
    }
    

    Это записывает содержимое текстового поля в поле "MySetting" в коллекции "MySettings" в реестре. , Если коллекция не существует, она будет создана.

  5. Добавьте следующий обработчик для OnLoaded событие пользовательского элемента управления.

    private void OnLoaded(Object sender, RoutedEventArgs e)
    {
        string value;
        SettingsStore.GetStringOrDefault(
            "MySettings", "MySetting", "", out value);
        txtblk.Text = value;
    }
    

    Это задает текст текстового поля с текущим значением "MySetting".

  6. Произведите построение пользовательского элемента управления.

  7. IN Обозреватель решенийвыберите команду открыть source.extension.vsixmanifest.

  8. В редакторе манифестов, установите Имя продукта сохранение my начальную страницу параметров.

    Это задает имя домашней страницы по мере его появления в Настройка начальной страницы в списке Параметры диалоговое окно.

  9. Построение StartPage.xaml.

Проверка элемента управления

Тестирование пользовательского элемента управления

  1. Нажмите клавишу F5.

    Экспериментальном экземпляре Visual Studio открытых.

  2. В экспериментальном экземпляре, на Сервис меню выберите команду Параметры.

  3. в [Устанавливать расширение] сохранение my начальную страницу параметрыузел, щелкните значок Среда и в Запускполя выберите Настройка начальной страницы .

    Нажмите кнопку ОК.

  4. Закройте начальная страница, если оно открыто, а затем на Просмотреть меню выберите команду Начальная страница.

  5. На начальной странице щелкните MyControl вкладка.

  6. В текстовом поле кот типа, а затем щелкните элемент Сохраните мой параметр.

  7. Закройте страницу, а затем открыть начала его снова.

    Машинное слово "кот" должно отображаться в текстовом поле.

  8. Замените машинное слово "кот" с машинным словом "собакой". Не нажимайте кнопку.

  9. Закройте страницу, а затем открыть начала его снова.

    Машинное слово "собака" должно отображаться в текстовом поле, даже если параметр не был сохранен. Это происходит потому, что Visual Studio хранит окна инструментов в памяти, даже если они закрыть, до тех пор, пока сам Visual Studio не закрыто.

  10. Закройте экспериментальном экземпляре Visual Studio.

  11. Нажмите клавишу F5, чтобы снова открыть экспериментальном экземпляр.

  12. Машинное слово "кот" должно отображаться в текстовом поле.

Следующие действия

Можно изменить этот пользовательский элемент управления, чтобы сохранять и извлекать любое число пользовательских параметров с помощью различных значений из разных обработчиков событий для получения и задания SettingsStore свойство. Если используется другая propertyName параметр для каждого вызова SetStringзначения не перезапишут одно другое в реестре.

См. также

Задачи

начальные страницы

Ссылки

DTE2

Основные понятия

Добавление команд Visual Studio на начальной странице