gpt4 book ai didi

c# - Wpf- 如何在代码中获取普通 TextBox 的 LineHeight?

转载 作者:行者123 更新时间:2023-11-30 12:51:42 25 4
gpt4 key购买 nike

我正在开发一个继承自 TextBoxCustomControl 并且可以通过在拖动鼠标时按住 Ctrl 来调整大小,但是有时当你调整它的大小时,线条会像这样被切断:

enter image description here

如果发生这种情况,我想调整选择的高度,这样线条就不会被切断。这是我到目前为止的代码:

double LineHeight = ??;
double requiredHeightAdjustment = this.Height % LineHeight;

if (requiredHeightAdjustment != 0)
{
this.Height -= requiredHeightAdjustment;
}

--编辑--

如果将来有人需要这个,我最终得到的是:

double fontHeight = this.FontSize * this.FontFamily.LineSpacing;

double requiredHeightAdjustment = this.Height % fontHeight;

var parent = this.Parent as FrameworkElement;

if (requiredHeightAdjustment != 0)
{
double upwardAdjustedHeight = (fontHeight - requiredHeightAdjustment) + this.Height;

if (requiredHeightAdjustment >= fontHeight / 2 && this.MaxHeight >= upwardAdjustedHeight
&& (parent == null || parent.ActualHeight >= upwardAdjustedHeight))
this.Height = upwardAdjustedHeight;
else
this.Height -= requiredHeightAdjustment;
}

此解决方案还会对所选 TextBox 大小进行最小的必要更改,而不是总是进行负更改。

最佳答案

由于您的 LineHeight 取决于字体系列和字体大小,您可能需要查看 GlyphTypeface .NET 3.0+ 中的类。虽然它可能有点太低级,但它具有 Height 等属性。

关于c# - Wpf- 如何在代码中获取普通 TextBox 的 LineHeight?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6301478/

25 4 0
文章推荐: Javascript:启用 CORS 的图像
文章推荐: javascript - TypeError : Object # has no method 'push' in Angular js Http. 获取请求