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