2017-10-01 7 views
0

私のWPF apppでは、TextBoxをサブクラス化してカスタムコントロールを作成しました。WPF:デザイナーはカスタムプロパティを設定しません

public class TextBoxEx : TextBox 
{ 
    public static readonly DependencyProperty BorderWhenRequiredProperty = DependencyProperty.Register(
     "BorderWhenRequired", typeof(Brush), typeof(TextBoxEx), 
     new FrameworkPropertyMetadata(default(Brush), FrameworkPropertyMetadataOptions.AffectsRender) 
    ); 

    public Brush BorderWhenRequired 
    { 
     get { return (Brush)GetValue(BorderWhenRequiredProperty); } 
     set { SetValue(BorderWhenRequiredProperty, value); } 
    } 
} 

が、私はその後、境界のブラシ値を保持しているリソースを作成し、そしてのスタイル:私はそのようにのようなBorderWhenRequired(テキストボックスは必須フィールドを表す場合に使用する境界線)と呼ばれたDependencyPropertyを追加しましたコントロール:

<SolidColorBrush x:Key="RequiredControlBorderBrush">Purple</SolidColorBrush> 

<Style TargetType="{x:Type implementations:TextBoxEx}"> 
    <Setter Property="BorderWhenRequired" Value="{StaticResource RequiredControlBorderBrush}" /> 
</Style> 

が、設計者が私を見せている。

ArgumentException: '#FF800080' is not a valid value for the 'MyNs.Common.Controls.Implementations.TextBoxEx.BorderWhenRequired' property on a Setter. 

私はブラシ、色とSolidColなどのリソースRequiredControlBorderBrushを定義してみましたorBrushでも、同じエラーが発生しています。

答えて

0

解決しました。誰かがこれに遭遇する場合:私は不注意なミスをしました。カスタムクラスのすべてのColorプロパティは、System.Window.Media.BrushであったはずのSystem.Drawing.Brushとして定義されています。

+1

私はそうですが、StackOverflowのルールに従って、私は明日それを行うことができます。 – user884248

関連する問題