Sdílet prostřednictvím


DesignModeValueProvider-Klasse

Aktualisiert: November 2007

Erfasst Eigenschaftenänderungen, die vom Benutzer im Designer vorgenommen werden, und stellt neue Werte zur Entwurfszeit bereit.

Namespace:  Microsoft.Windows.Design.Model
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Syntax

'Declaration
Public Class DesignModeValueProvider _
    Inherits FeatureProvider
'Usage
Dim instance As DesignModeValueProvider
public class DesignModeValueProvider : FeatureProvider
public ref class DesignModeValueProvider : public FeatureProvider
public class DesignModeValueProvider extends FeatureProvider

Hinweise

Wenn ein Benutzer einen Eigenschaftenwert eines Objekts im Designer ändert, wird dieser Wert in der Regel für das Objekt im Designer festgelegt. Mit der DesignModeValueProvider-Klasse können Sie eigene Logik in diesen Prozess einfügen. Beispielsweise soll der Benutzer die visible-Eigenschaft eines Steuerelements auf false festlegen können, das Steuerelement soll jedoch trotzdem zur Entwurfszeit sichtbar sein.

Um dies zu erreichen, erstellen Sie einen DesignModeValueProvider und fügen diesen an Ihr benutzerdefiniertes Steuerelement an. Der DesignModeValueProvider erfasst vom Benutzer vorgenommene Eigenschaftenänderungen, Sie fügen Ihre eigene Logik in die TranslatePropertyValue-Methode ein, und der DesignModeValueProvider übergibt die neuen Werte an den Designer.

Wichtiger Hinweis:

Wenn Sie dieses Verfahren verwenden, entspricht das Verhalten einer Eigenschaft im Designer nicht dem Wert der Eigenschaft in der XAML-Ansicht. In der XAML-Ansicht wird der Wert angezeigt, den der Benutzer zur Entwurfszeit eingegeben hat. Der Wert in der XAML-Ansicht stellt das Verhalten dar, das die Eigenschaft zur Laufzeit zeigt.

Beispiele

Im folgenden Beispiel wird ein benutzerdefinierter DesignModeValueProvider erstellt, der an ein benutzerdefiniertes Schaltflächensteuerelement angefügt wird. In der TranslatePropertyValue-Methode ändern Sie die Content-Eigenschaft für die Button-Element, damit sie im Designer in Großbuchstaben angezeigt wird. Außerdem ändern Sie die Background-Eigenschaft für die Button, damit diese im Designer mit der Standardsystemfarbe angezeigt wird. Diese Änderungen beeinflussen nur den Designer. Zur Laufzeit werden die Background-Eigenschaft und die Content-Eigenschaft mit den vom Benutzer festgelegten Werten angezeigt.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Ändern des Verhaltens einer Eigenschaft zur Entwurfszeit.


Imports System
Imports System.Windows                  'SystemColors
Imports System.Windows.Media            'SolidColorBrush
Imports System.Windows.Controls         'Button
Imports Microsoft.Windows.Design.Model  'DesignModeValueProvider

Namespace CustomButton

    Public Class CustomButtonDesignModeValueProvider
        Inherits DesignModeValueProvider


        Public Sub New()

            Properties.Add(Button.ContentProperty)
            Properties.Add(Button.BackgroundProperty)
        End Sub



        Public Overrides Function TranslatePropertyValue(ByVal identifier As PropertyIdentifier, ByVal value As Object) As Object

            If identifier.DependencyProperty Is Button.ContentProperty Then

                Return value.ToString().ToUpper()
            End If

            If identifier.DependencyProperty Is Button.BackgroundProperty Then

                Return New SolidColorBrush(SystemColors.ControlColor)
            End If

            Return MyBase.TranslatePropertyValue(identifier, value)
        End Function
    End Class
End Namespace

using System;
using System.Windows;                   //SystemColors
using System.Windows.Media;             //SolidColorBrush
using System.Windows.Controls;          //Button
using Microsoft.Windows.Design.Model;   //DesignModeValueProvider
namespace CustomButton
{
    class CustomButtonDesignModeValueProvider : DesignModeValueProvider
    {

        public CustomButtonDesignModeValueProvider()
        {
            Properties.Add(Button.ContentProperty);
            Properties.Add(Button.BackgroundProperty);
        }


        public override object TranslatePropertyValue(PropertyIdentifier identifier, object value)
        {
            if (identifier.DependencyProperty == Button.ContentProperty)
            {
                return ((string)value).ToUpper();
            }

            if (identifier.DependencyProperty == Button.BackgroundProperty)
            {
                return new SolidColorBrush(SystemColors.ControlColor);
            }

            return base.TranslatePropertyValue(identifier, value);
        }
    }
}

Vererbungshierarchie

System.Object
  Microsoft.Windows.Design.Features.FeatureProvider
    Microsoft.Windows.Design.Model.DesignModeValueProvider

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

DesignModeValueProvider-Member

Microsoft.Windows.Design.Model-Namespace

Weitere Ressourcen

Gewusst wie: Ändern des Verhaltens einer Eigenschaft zur Entwurfszeit

Erweiterbare Architektur des WPF-Designers

Eigenschaftenbearbeitungsarchitektur

Featureanbieter und Featureverbindungen