Come Textbox interagisce con TextElement

0

Domanda

Posso scrivere come questo

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

E posso scrivere come questo

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

Ma non capisco come TextBox interracts con TExtElement. Per esempio TExtBlock ha Inlines proprietà. E MSDN dice "PasswordBox, RichEditBox e la casella di testo non supportano un oggetto di testo modello basato su TextElement." Chi sa come funziona?!

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

Migliore risposta

-1

Casella di testo.Fontweight eredita dal Controllo.Fontweight, il cui Valore è di Tipo System.Windows.Fontweight

TextElement.FontWeight è anche del Tipo di Sistema.Windows.FontWeight. Si fa riferimento a questo prop attraverso uno Stile setter, in modo che è possibile accedere alla Proprietà di un'altra Classe (come lungo i tipi di 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>

Sono anche validi.

Perché questo funziona, vedi sotto nel Commento.

2021-11-23 15:09:44

"è di Tipo" non è il motivo per cui lo Stile funziona. Solo perché due proprietà sono dello stesso tipo non significa che non si può impostare un solo impostando l'altro. Il vero motivo è public static readonly DependencyProperty FontWeightProperty = TextElement.FontWeightProperty.AddOwner(...); in Controllo.cs. Vedere la Fonte di Riferimento.
Clemens

In altre lingue

Questa pagina è in altre lingue

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