Не понимаю, как работает шаблон PasswordBox в XAML

Ниже мой шаблон для PasswordBox. Он работает, как и должен, но я не понимаю, почему. А именно только засчёт строчки:

<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>

Если я изменю имя элемента ScrollWiewer на какое-либо другое, то шаблон уже не рабочий(при вводе пароля визуально не видно, что он введён). Так вот вопрос: что это за загадочный элемент с именем PART_ContentHost и почему без него не видно пароля в PasswordBox?

<Style x:Key="PasswordBoxStyle" TargetType="PasswordBox">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
        <Setter Property="Foreground" Value="{DynamicResource TextColor1}"/>
        <Setter Property="Width" Value="{Binding PasswordBox.Width}"/>
        <Setter Property="Height" Value="{Binding PasswordBox.Height}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type PasswordBox}">
                    <Grid>
                        <Border Background="{TemplateBinding PasswordBox.Background}" BorderBrush="{TemplateBinding PasswordBox.BorderBrush}" BorderThickness="3" CornerRadius="11">
                            <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="BorderBrush" Value="{DynamicResource IsMouseOverColor}"/>
                        </Trigger>
                        <Trigger Property="IsFocused" Value="True">
                            <Setter Property="BorderBrush" Value="{DynamicResource IsMouseOverColor}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Ответы (0 шт):