Freigeben über


Exemplarische Vorgehensweise: Startseite auf einer Einsparungs-Benutzer-Einstellungen durch Automatisierung

Sie können das Automatisierungsmodell von einer Startseite zugreifen, und Sie können das Automatisierungsmodell verwenden, um Benutzereinstellungen erhalten bleiben. Mithilfe dieser exemplarischen Vorgehensweise ausführen, können Sie ein Steuerelement erstellen, das eine Einstellung in der Registrierung gespeichert wird, wenn der Benutzer auf eine Schaltfläche klickt und dann diese Einstellung bei jedem Abrufen der Startseite lädt. Da die Projektvorlage Startseiten ein vom Benutzer anpassbares Benutzersteuerelement und die Standardstartseite XAML-Aufrufe enthält, die steuern, müssen Sie die Startseite selbst nicht ändern.

Die Einstellungen speichern, die in dieser exemplarischen Vorgehensweise ist eine Instanz der IVsWritableSettingsStore-Schnittstelle instanziiert wird, die zum nächsten Registrierungsspeicherort liest und schreibt, wenn sie aufgerufen wird: HKCU \ Software \ Microsoft \ VisualStudio \ 10.0 \CollectionName

Wenn es in die experimentelle Instanz von Visual Studio ausgeführt wird, liest der Einstellungen speichern und schreibt HKCU \ Software \ Microsoft \ VisualStudio \ 10.0Exp \CollectionName.

Weitere Informationen dazu, wie Sie Einstellungen finden Sie unter Zustands-Persistenz und die Visual Studio-IDE oder Unterstützung für Zustands-Persistenzbeibehält. Weitere Informationen zum Automatisierungsmodell finden Sie unter Erweitern der Visual Studio-Umgebung oder Verweisen auf Automatisierungsassemblys und das DTE2-Objekt.

Vorbereitungsmaßnahmen

Zum Abschließen dieser exemplarischen Vorgehensweise müssen Sie Visual Studio 2010 SDKinstallieren. Sie müssen die Projektvorlage Startseiten installieren.

Hinweis

Weitere Informationen über das Visual Studio-SDK finden Sie unter Erweitern von Visual Studio Overview.Um das Visual Studio SDK herunterladen, finden Sie unter Visual Studio Extensibility Developer Center auf der MSDN-Website.

Sie können die Projektvorlage Startseiten herunter, indem Sie Erweiterungs-Managerverwenden.

Das Projekt einrichten

So erstellen Sie das Projekt für diese exemplarische Vorgehensweise konfigurieren

  1. Erstellen Sie ein Startseitenprojekt, indem Sie die Projektvorlage Startseiten verwenden, wie in Startseitenbeschrieben. Nennen Sie das Projekt SaveMySettings.

  2. In Projektmappen-Explorerfügen Sie dem StartPageControl-Projekt die folgenden Assemblys hinzu:

    • EnvDTE EnvDTE80

    • Microsoft.VisualStudio.OLE.Interop

    • Microsoft.VisualStudio.Shell.Interop.10.0

    Das EnvDTE und EnvDTE80 die Assemblys enthalten das Automatisierungsobjektmodell. Die Interop-Assemblys ermöglichen den Zugriff auf bestimmte Objekte in der Visual Studio-Shell.

  3. Öffnen Sie MyControl.xaml.

  4. Klicken Sie im XAML-Bereich in der UserControl-Elementdefinition der obersten Ebene, fügen Sie die folgende Deklaration des Ereignisses nach den Namespacedeklarationen hinzu.

    Loaded="OnLoaded"
    
  5. Im Entwurfsbereich klicken Sie auf den Hauptbereich des Steuerelements, und drücken Sie dann ENTF.

    Hierdurch wird das Border-Element und alle in ihm Grid , sodass nur das Element der obersten Ebene.

  6. Von Toolboxziehen Sie ein StackPanel-Steuerelement zum Raster.

  7. Ziehen Sie jetzt TextBlock, TextBoxund eine Schaltfläche StackPanel.

  8. Fügen Sie ein x:Name-Attribut für TextBoxund ein Click-Ereignis für Button, wie im folgenden Beispiel gezeigt.

    <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>
    

Implementieren des Benutzersteuerelements

So implementieren Sie das Benutzersteuerelement

  1. Klicken Sie im XAML-Bereich mit der rechten Maustaste auf das Click-Attribut des Elements Button und klicken Sie dann auf Zu Ereignishandler navigieren.

    Dadurch wird MyControl.xaml.cs und erstellt einen Stub Handler für das Button_Click-Ereignis.

  2. Fügen Sie die folgenden Anweisungen using am Anfang der Datei hinzu.

    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    using Microsoft.VisualStudio.Shell.Interop;
    using System.ComponentModel;
    
  3. Fügen Sie eine private SettingsStore-Eigenschaft, wie im folgenden Beispiel gezeigt.

    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;
        }
    }
    

    Diese Eigenschaft ruft zunächst einen Verweis auf die DTE2-Schnittstelle ab, die das Automatisierungsobjektmodell von DataContext des Benutzersteuerelements enthält, und dann das Design Time Extensibility, DTE verwendet wird, um eine Instanz der IVsSettingsManager-Schnittstelle abzurufen. Anschließend verwendet er diese Instanz, um die aktuellen Benutzereinstellungen zurückzugeben.

  4. Füllen Sie das Button_Click-Ereignis wie folgt aus.

    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);
    }
    

    Dieses schreibt den Inhalt des Textfelds in einem Feld „MySetting“ in eine Auflistung von „MySettings“ in der Registrierung. Wenn die Auflistung nicht vorhanden ist, wird sie erstellt.

  5. Fügen Sie den folgenden OnLoaded-Handler für das Ereignis ein Benutzersteuerelement hinzu.

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

    Dies legt den Text des Textfelds an das aktuelle Wert von „MySetting“ fest.

  6. Erstellen Sie das Benutzersteuerelement.

  7. Öffnen Sie in Projektmappen-Explorersource.extension.vsixmanifest.

  8. Legen Sie im Manifest-Editor Produktname fest, um meine Einstellungs-Startseite zu speichern.

    Dies legt den Namen fest, wie es der Startseite in der Startseite anpassen Liste im Dialogfeld Optionen angezeigt wird.

  9. Build StartPage.xaml.

Testen des Steuerelements

So testen Sie das Benutzersteuerelement

  1. Drücken Sie F5.

    Die experimentelle Instanz von Visual Studio wird geöffnet.

  2. Klicken Sie in der experimentellen Instanz im Menü Extras auf Optionen.

  3. Im Umgebung Knoten klicken Sie auf StartStartseite anpassen und klicken Sie dann in der Liste auswählen [Installierte Erweiterung] Startseite Einstellungen speichern.

    Klicken Sie auf OK.

  4. Schließen Sie die Startseite festlegen aus, wenn diese geöffnet ist, und klicken Sie anschließend auf Ansicht Menü Startseite.

  5. Klicken Sie auf der Startseite auf die Registerkarte MyControl .

  6. Geben Sie im Textfeld Katze ein, und klicken Sie dann auf Meine Einstellung speichern.

  7. Schließen Sie die Startseite, und öffnen Sie es dann erneut.

    Das Wort „Katze“ sollte im Textfeld angezeigt werden.

  8. Ersetzen Sie das Wort „Katze“ durch das Wort „Hund“. Klicken Sie nicht auf die Schaltfläche.

  9. Schließen Sie die Startseite, und öffnen Sie es dann erneut.

    Das Wort „Hund“ sollte im Textfeld angezeigt werden, obwohl diese Einstellung nicht gespeichert wurde. Dies geschieht, da Visual Studio Toolfenster im Arbeitsspeicher enthält, selbst wenn sie geschlossen werden, wenn Visual Studio selbst geschlossen wird.

  10. Schließen Sie die experimentelle Instanz von Visual Studio.

  11. Drücken Sie F5, um die experimentelle Instanz erneut zu öffnen.

  12. Das Wort „Katze“ sollte im Textfeld angezeigt werden.

Nächste Schritte

Sie können dieses Benutzersteuerelement ändern, um eine beliebige Anzahl von benutzerdefinierten Einstellungen zu speichern und abrufen, indem Sie verschiedene Werte von verschiedenen Ereignishandler verwenden, um die SettingsStore-Eigenschaft abzurufen und festzulegen. Solange Sie einen anderen propertyName-Parameter für jeden Aufruf von SetStringverwenden, überschreiben die Werte nicht in der Registrierung.

Siehe auch

Aufgaben

Startseiten

Referenz

DTE2

Konzepte

Visual Studio-Befehle Hinzufügen einer Startseite