XAML - 设置样式后,文本未显示在文本框中



因此,我在正在开发的应用程序中设置了文本框的样式,突然间我看不到绑定到文本框的任何文本。我觉得我错过了某种内容演示器。好吧,无论如何,这是样式。

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

这是我的文本框是如何设置的

<TextBox Grid.Row="2" Grid.Column="5" BorderThickness="1" Text="{Binding VariableName}">

有什么想法吗?

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

<ControlTemplate TargetType="TextBox">
    <Border BorderThickness="{TemplateBinding BorderThickness}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    Background="{TemplateBinding Background}">
        <ScrollViewer Margin="0"
                    x:Name="PART_ContentHost" />
    <!-- ... -->

这是因为TextBoxControlTemplate需要名称为 PART_ContentHost 的部件。您可以查看内置控件的ControlTemplate示例,以了解需要哪些命名模板部件,以及每个部件必须能够执行哪些操作才能保留正常功能。

相关内容

  • 没有找到相关文章

最新更新