将 TextBox 与倾斜文本结合使用时,我有点麻烦。
我看了一个similar SO question,其中使用的控件实际上是一个 TextBlock ,并且增加了Height
(如建议的那样)既不能解决TextBox的问题,也不能适合因为我需要根据TextBox内文本的Height
隐式设置Height
,所以需要我的方案。
除此之外,我找不到其他相关问题。
我有以下XAML代码:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<TextBox
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontStyle="Normal"
FontSize="50"
Text="Another text">
</TextBox>
</Window>
一切正常,直到我将FontStyle
更改为Oblique
(单击下面的链接以查看图片):
我发现问题可能是由TextBox内部的 TextBoxView 引起的,该文本框的Width
以一种非常奇怪的方式计算。字母的一部分似乎超出了其“选择范围”(当您查看所选文本和 Snoop WPF元素突出显示时,我相信您会知道我的意思。
事实证明,在Snoop WPF中调整TextBoxView Width
可解决此问题。但是,我无法在XAML中实现相同的功能。
我可能可以通过为TextBox创建自定义模板来解决此问题,但是对于我本来希望可以正常工作的某些事情来说,这肯定显得有些多余,并且工作量很大。
我错过了什么吗,还是真的很难以正确的方式工作?
PS:我确实需要文本是可以选择的,因此使用TextBlock而不是TextBox是不可能的。