更新 : 2007 年 11 月
デザイナでユーザーが行ったプロパティの変更をキャプチャし、デザイン時にカスタム ロジックを使用して新しい値を提供します。
名前空間 : Microsoft.Windows.Design.Model
アセンブリ : Microsoft.Windows.Design.Extensibility (Microsoft.Windows.Design.Extensibility.dll 内)
構文
'宣言
Public Overridable Function TranslatePropertyValue ( _
identifier As PropertyIdentifier, _
value As Object _
) As Object
'使用
Dim instance As DesignModeValueProvider
Dim identifier As PropertyIdentifier
Dim value As Object
Dim returnValue As Object
returnValue = instance.TranslatePropertyValue(identifier, _
value)
public virtual Object TranslatePropertyValue(
PropertyIdentifier identifier,
Object value
)
public:
virtual Object^ TranslatePropertyValue(
PropertyIdentifier^ identifier,
Object^ value
)
public function TranslatePropertyValue(
identifier : PropertyIdentifier,
value : Object
) : Object
パラメータ
identifier
型 : Microsoft.Windows.Design.Model.PropertyIdentifierユーザーが値を変更しているプロパティ。
value
型 : System.Objectユーザーがプロパティに指定している新しい値。
戻り値
型 : System.Object
デザイナでプロパティに設定する値。
例外
例外 | 条件 |
---|---|
ArgumentNullException | identifier が nullnull 参照 (Visual Basic では Nothing) です。 |
解説
TranslatePropertyValue は、Properties のプロパティごとに 1 回ずつ呼び出されます。戻り値は、新しい値か、またはメソッドに渡された値と同じ値です。
これらの変更は、デザイナにのみ影響します。実行時には、プロパティが、ユーザーが設定した値と共に表示されます。
![]() |
---|
この方法を使用した場合、デザイナ内でのプロパティの動作が、XAML ビュー内のプロパティの値と一致しません。XAML ビューには、デザイン時にユーザーが入力した値が表示されます。XAML ビュー内の値は、実行時にプロパティが示す動作を表します。 |
例
次の例では TranslatePropertyValue メソッドをオーバーライドします。Button の Content プロパティを変更して、デザイナに大文字で表示されるようにします。Button の Background プロパティも変更して、デザイナに既定のシステム カラーで表示されるようにします。これらの変更は、デザイナにのみ影響します。実行時には、Content プロパティおよび Background プロパティが、ユーザーが設定した値と共に表示されます。このコード例は、DesignModeValueProvider クラスのトピックで取り上げているコード例の一部分です。
詳細については、「チュートリアル : デザイン時のプロパティ動作の変更」を参照してください。
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
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);
}
アクセス許可
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
参照
参照
TranslatePropertyValue オーバーロード
Microsoft.Windows.Design.Model 名前空間