【问题标题】:How to change the height of a TextBox?如何更改文本框的高度?
【发布时间】:2017-11-13 12:31:14
【问题描述】:

我目前正在为 UWP 应用学习 C# 和 XAML,但我的 TextBoxes 有问题。

如何让 TextBox 变小?仅调整字体大小是不够的,即使设置高度也不会带来任何变化。我注意到Clear 按钮并没有变小,其中的X 也没有随着FontSize 变小。这可能是问题所在,因为 TextBox 可能不想剪切清除按钮,因此保留默认大小,因为您可以毫无问题地将框变大,但不能变小。

我可能会补充一点,我使用 Visual Studio Community 2017 和现有 ToolBox 中的 TextBox。

有人可以帮我吗?到目前为止,我发现的只是如何在 WPF 应用程序上添加这样一个清晰的按钮。

【问题讨论】:

  • 您可以从 generic.xaml 中复制当前TextBox 的样式并修改它以调整TextBox 和清除按钮的大小,使其更小
  • 可以获取样式here。检查您的问题不是由TextBoxMinHeight 属性引起的
  • 哦,哇,现在回答了我问自己的一些问题,但它也称为新问题。所以你必须“复制”完整的设计,然后编辑你想要编辑的属性?所以你实际上是在制作你的“自己的控制元素”?这是处理这个问题的唯一方法吗?是不是有类似 CSS 的东西,您只需输入子元素并更改属性,例如:“TextBox.Grid.ButtonGrid.DeleteButton.Height=20”或类似的东西?但我当然感谢你的帮助!
  • 不幸的是,如果您需要一些不同样式的 UIElement,这可能会很痛苦。但是,如果您正确设置样式,则可以使用 TemplateBinding 执行您所说的操作。
  • 好吧,很高兴知道。至少现在它正在工作!再次感谢您的帮助!

标签: c# xaml textbox uwp size


【解决方案1】:

正如jsmyth886 所说,MinHeight 属性将限制您可以设置的最小高度。如果您想缩小TextBox,您可以为TextBox 创建自定义样式,如下所示

<Style TargetType="TextBox" x:Key="MyTextBoxStyle">
    <Setter Property="MinHeight" Value="20"/>
</Style>

当你将Height属性设置为大于MinHeight时,才会生效。

<TextBox x:Name="MyTextBox" Text="This text box" Style="{StaticResource MyTextBoxStyle}" Height="21" />

以上操作同样适用于MinWidth属性。

【讨论】:

  • 嘿!是的,我看到 minheight 属性的限制可能存在问题,但有趣的是,它不会影响我的 uwp 应用程序。我遇到的唯一问题是文本框中的清除所有按钮,它对我的​​字体大小没有反应,但认为它会忽略它,因为它会适合。因此我不得不自己调整按钮的高度,以便 TextBox 可以变小。但是,我不知道您必须编辑整个模板,或者至少是它的副本,才能进行如此精细的调整。
  • 按钮忽略字体大小更改的原因是因为它在TextBox 的默认样式中硬编码了 12 的字体大小。您需要编辑该内部 DeleteButton 样式,以便它使用 TemplateBinding fontsize
  • 嘿!是的,在你告诉我我必须创建一个特定模板的副本之后,我已经这样做了,之后我可以对其进行编辑。我只是想说 minheight 属性不是问题,也可以假设,只是清除所有按钮。
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多