【问题标题】:Text box styling文本框样式
【发布时间】:2013-06-30 15:58:06
【问题描述】:

每当我尝试将样式应用于文本框时,它都会对用户输入无响应。你能告诉我解决这个问题的方法吗?这是我正在使用的 xaml 代码:

<Style x:Key="textbox"
       TargetType="TextBox">
  <Setter Property="OverridesDefaultStyle"
          Value="True" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="TextBox">
        <Border BorderThickness="3"
                Background="{TemplateBinding Background}"
                Name="border">
          <ContentPresenter HorizontalAlignment="Center"
                            VerticalAlignment="Center" />
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsMouseOver"
                   Value="True">
            <Setter TargetName="border"
                    Property="BorderBrush"
                    Value="#9E5971" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

【问题讨论】:

  • 哦,顺便说一句,无论它是否可聚焦,我都得到同样的结果。
  • 我删除了那行,还是不行。

标签: .net wpf xaml


【解决方案1】:

替换

<ContentPresenter
    HorizontalAlignment="Center" VerticalAlignment="Center" />

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

ScrollViewer 命名为PART_ContentHost 是任何TextBox 控件模板的必需部分。您应该使用Default WPF Control Styles and Templates 作为参考,而不是提出自己的模板。

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2014-05-31
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多