Cum Textbox interacționează cu TextElement

0

Problema

Nu pot scrie astfel de prognoze

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

Și eu pot scrie astfel de prognoze

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

Dar nu înțeleg cum TextBox interracts cu TExtElement. De exemplu TExtBlock a Inlines proprietate. Și MSDN spune următoarele "PasswordBox, RichEditBox și Caseta nu suport un text object model care se bazează pe TextElement." Cine stie cum functioneaza?!

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

Cel mai bun răspuns

-1

Caseta de text.Fontweight moștenește de la Control.Fontweight, a căror Valoare este de Tip Sistem.Windows.Fontweight

TextElement.FontWeight este, de asemenea, de Tipul de Sistem.Windows.FontWeight. Te referi la aceasta prop printr-un Stil setter, astfel încât să puteți accesa de Proprietate peste o altă Clasă, precum și (ca timp de tipuri meci)

 <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>

Sunt, de asemenea, valabil.

De ce funcționează acest lucru, a se vedea mai jos, în Comentarii.

2021-11-23 15:09:44

"este, de asemenea, de Tipul" nu este motivul pentru care Stilul de lucrări. Doar pentru că două proprietăți sunt de același tip, nu înseamnă că puteți seta unul prin stabilirea de celelalte. Motivul real este public static readonly DependencyProperty FontWeightProperty = TextElement.FontWeightProperty.AddOwner(...); în Control.cs. Vezi Sursă de Referință.
Clemens

În alte limbi

Această pagină este în alte limbi

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