我打破了文本框

本文关键字:文本 | 更新日期: 2023-09-27 18:36:46

我正在制作一个 wpf 表单(几天前从 winform 移动),我想自定义我的文本框。我让文本框按照我想要的方式运行,但现在我无法给它输入,当我单击它时它根本没有响应。我想我打破了它,无论如何这是我的代码:

<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="10,48,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120" Foreground="White">
        <TextBox.Style>
            <Style TargetType="{x:Type TextBox}">
                <Setter Property="BorderBrush" Value="#FF497AB4"/>
                <Setter Property="Background" Value="#FF2E2E2E"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type TextBox}">
                            <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="BorderBrush" Value="OrangeRed"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBox.Style>
    </TextBox>

那么我做错了什么?谢谢!

我打破了文本框

尝试将滚动查看器添加到模板中,如下所示:

<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
     <ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
</Border>

这里有一些示例模板

问题是模板没有内容主机,因此它不会呈现内容。要添加内容主机,您应该添加一个名为"PART_ContentHost"的元素,如此处所述