XAML - 在我设置样式后,文本框中没有显示文本

Sty*_*s05 2 wpf xaml text styles

所以,我在我正在处理的应用程序中设置了我的TextBoxes,突然间我看不到任何我绑定到TextBoxes的文本.我觉得我错过了某种ContentPresenter.好吧无论如何,这是造型.

<Style TargetType="{x:Type TextBox}">
    <Setter Property="Height" Value="26"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TextBox">
                <Border BorderThickness="{TemplateBinding BorderThickness}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        Background="{TemplateBinding Background}">
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Value="#FF2F2F2F" Property="Background"/>
                        <Setter Value="White" Property="Foreground"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

以下是我的TextBoxes的设置方式

<TextBox Grid.Row="2" Grid.Column="5" BorderThickness="1" Text="{Binding VariableName}">
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

use*_*116 5

你的预感是正确的,你需要PART_ContentHost在你ControlTemplate的名字中有一个名字的模板部分:

<ControlTemplate TargetType="TextBox">
    <Border BorderThickness="{TemplateBinding BorderThickness}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    Background="{TemplateBinding Background}">
        <ScrollViewer Margin="0"
                    x:Name="PART_ContentHost" />
    <!-- ... -->
Run Code Online (Sandbox Code Playgroud)

这是因为ControlTemplatefor a TextBox需要一个带有名称的部分PART_ContentHost.您可以查看ControlTemplate内置控件示例,以找出所需的命名模板部件以及每个部件必须能够执行哪些操作才能保留正常功能.