Comment Textbox interagit avec TextElement

0

La question

Je peux écrire comme ceci

<TextBox FontWeight="ExtraBold">                
</TextBox>

Et je peux écrire comme ceci

<TextBox>
<TextBox.Style>
    <Style>
        <Setter Property="TextElement.FontWeight" Value="ExtraBold"/>
    </Style>
</TextBox.Style>

Mais je ne comprends pas comment TextBox interracts avec TExtElement. Par exemple TExtBlock a Inlines de la propriété. Et MSDN dit la chose suivante "PasswordBox, RichEditBox et de la zone de texte ne supportent pas un objet de texte modèle qui est basé sur TextElement." Qui sait comment ça fonctionne?!

wpf wpf-controls
2021-11-23 12:17:43
1

La meilleure réponse

-1

Zone de texte.Fontweight hérite de Contrôle.Fontweight, dont la Valeur est de Type Système.De Windows.Fontweight

TextElement.FontWeight est aussi de Type de Système.De Windows.FontWeight. Vous vous référez à cette prop via un accesseur set de Style, de sorte que vous pouvez accéder à la Propriété sur une autre Classe aussi bien (tant les types de match)

 <TextBox>
      <TextBox.Style>
        <Style TargetType="TextBox">
          <Setter Property="ComboBox.FontWeight"
                  Value="Black" />
        </Style>
      </TextBox.Style>
    </TextBox>

    <TextBox>
      <TextBox.Style>
        <Style TargetType="TextBox">
          <Setter Property="Control.FontWeight"
                  Value="Black" />
        </Style>
      </TextBox.Style>
    </TextBox>

Sont également valides.

Pourquoi cela fonctionne, voir ci-dessous en Commentaire.

2021-11-23 15:09:44

"est également de Type" n'est pas la raison pour laquelle le Style des œuvres. Tout simplement parce que les deux propriétés sont du même type ne signifie pas que vous pouvez définir l'un par le réglage de l'autre. La vraie raison est public static readonly DependencyProperty FontWeightProperty = TextElement.FontWeightProperty.AddOwner(...); dans le Contrôle.cs. Voir la Source de Référence.
Clemens

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................