gpt4 book ai didi

c# - 使用 TextBox 在 WPF slider 上呈现刻度数

转载 作者:行者123 更新时间:2023-11-30 18:27:46 40 4
gpt4 key购买 nike

之前有几个与向 WPF Slider 上的刻度添加数值相关的问题(例如 herehere )。到目前为止,我发现的所有建议解决方案都是从 TickBar 类继承,然后使用 DrawText(FormattedText text, Point point) 绘制值。像这样的东西:

protected override void OnRender(DrawingContext dc)
{
foreach(double tick in Ticks)
{
formattedText = new FormattedText(Convert.ToString(tick),
CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface("Verdana"), // I don't know why all examples use the Verdana font :P
10, Brushes.Black);
dc.DrawText(formattedText, ComputeTheRightPosition(tick));
}
}

虽然这是一个有效的解决方案,但由于 FormattedText,我发现它对我来说不够通用。在我的应用程序中,Style 可以在运行时更改,所以我更喜欢将所有数字放在 TextBlock 或其他东西中的方法,这样可以动态更新其样式和字体和所有。

是否可以在SliderTickBar 子类中以这种方式添加文本框?

最佳答案

开箱即用的解决方案 -

在 slider 上方放置一个 Canvas 。当 slider 值变化时,得到 value/(max-min) 的比率

使用相同的比例使用 SetLeft 或 Render Transform 将文本 block 放置在 Canvas 中。

关于c# - 使用 TextBox 在 WPF slider 上呈现刻度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26253599/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com