5

スタイルの基本的な部分のみを変更する必要があるTextBoxのカスタムサブクラスを作成しています。これで、サブクラス化するときに、通常は次のようにメタデータを変更することになっていることがわかりControlました...

public class EnhancedTextBox : TextBox
{
    static EnhancedTextBox()
    {
        // Commenting this line out lets this use the default TextBox style.
        DefaultStyleKeyProperty.OverrideMetadata(
            typeof(EnhancedTextBox),
            new FrameworkPropertyMetadata(typeof(EnhancedTextBox)));
    }
}

これにより、そのサブクラスタイプに使用されるキーがタイプ自体に変更されます。つまり、デフォルトのTextBoxスタイルが取得されなくなります。大したことではありません...その行をコメント化するだけで、キーがTextBoxで直接使用される値に設定されているため、再び機能します。

ただし、スタイル全体ではなく、スタイルのいくつかを変更BasedOnたいのではないかと思います。新しいスタイルを作成してそのプロパティを設定するだけで済みます...しかし、そこに何を設定しますか?XAMLを手動で引き出して新しいスタイルを作成し、キーを指定してからStaticResourceを使用する必要はありませんが、そこに何を設定できるかはわかりません。'これはTextBoxに基づいています。スタイル。

シンプルなものを望んでいますが、やはり見つかりませんでした。誰か助けてもらえますか?

4

1 に答える 1

9

と、こんな感じで・・・見つけました。男、それがこれほど明白であり、私はそれを逃したと自分自身を蹴ります!

<Style TargetType="{x:Type local:EnhancedTextBox}"
    BasedOn="{StaticResource {x:Type TextBox}}">

   ....

</Style>

ここで見つけました...現在のWPFスタイルに基づく

于 2012-04-30T04:29:59.870 に答える