【问题标题】:I broke the textbox我打破了文本框
【发布时间】:2016-03-01 08:29:01
【问题描述】:

我正在制作一个 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>

那我做错了什么?谢谢!

【问题讨论】:

  • 我认为问题出在模板设置器上,正在准备一个项目进行测试:)
  • 查看 MSDN 文章:msdn.microsoft.com/en-us/library/ms752068(v=vs.110).aspx 我想你在ControlTemplate 中忘记了一些东西,顺便说一句,你的风格部分让你无法与文本框交互

标签: c# wpf visual-studio xaml


【解决方案1】:

尝试将 Scrollviewer 添加到您的模板中,如下所示:

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

你有一些示例模板here

问题是模板没有 ContentHost,所以它不会呈现内容。要添加 ContentHost,您应该添加一个名为 "PART_ContentHost" 的元素,如 here

所述

【讨论】:

  • 哇,现在我想知道为什么在边框中添加滚动查看器会使文本框正常工作(我有预感,但我想确定一下)
  • @Sidewinder94 见this
  • 好的,谢谢;)您应该将此添加到您的答案中,以使其质量更好^^
猜你喜欢
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2018-12-02
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多