Как текстовое поле взаимодействует с элементом TextElement

0

Вопрос

Я могу написать вот так

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

И я могу написать вот так

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

Но я не понимаю, как TextBox взаимодействует с TextElement. Например, TextBlock имеет свойство Inlines. И MSDN говорит следующее: "PasswordBox, RichEditBox и TextBox не поддерживают модель текстовых объектов, основанную на TextElement". Кто знает, как это работает?!

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

Лучший ответ

-1

Текстовое поле.Вес шрифта наследуется от элемента управления.Вес шрифта, значение которого имеет тип System.Windows.Вес шрифта

Элемент текста.Вес шрифта также относится к системе типов.Windows.Вес шрифта. Вы ссылаетесь на эту опору через задатчик стилей, поэтому вы также можете получить доступ к свойству через другой класс (если типы совпадают).

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

Также действительны.

Почему это работает, смотрите ниже в комментарии.

2021-11-23 15:09:44

"также относится к типу" - это не причина, по которой работает Стиль. То, что два свойства имеют один и тот же тип, не означает, что вы можете установить одно, установив другое. Фактическая причина заключается в public static readonly DependencyProperty FontWeightProperty = TextElement.FontWeightProperty.AddOwner(...); под контролем.cs. См. Справочный источник.
Clemens

На других языках

Эта страница на других языках

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