如何使用允许删除最左边字符的 TextBlock

发布于 2024-10-19 01:23:23 字数 263 浏览 0 评论 0 原文

我有以下场景,我认为会有一个简单的解决方案,但我很困惑...

我构建了一个 WPF 用户控件,其中包含一组数字按钮和一个 TextBlock 来记录已选择的按钮。当用户控件打开时,TextBlock 为空。选择按钮后,其代表的数字将附加到所显示文本的右侧。

我需要的是一种解决方案,其中数字不断附加在右侧,如果这导致超出 TextBlock 的固定可显示大小,则会删除最左侧的字符。实际上,我追求的是一次一个角色的品牌效应。

我无法使用滚动条。任何想法都会受到欢迎

I have the following scenario which I thought would have a simple solution, but I'm stumped...

I have constructed a WPF user control with a set of numeric Buttons and a TextBlock to record what buttons have been selected. When the user control opens, the TextBlock is empty. As a button is selected, the digit it represents is appended to the right-hand-side of the displayed text.

What I need is a solution where the digits keep getting appended on the right-hand-side and if that results in exceeding the fixed displayable size of the TextBlock dropping the left-most character. In effect I am after a one-character-at-a-time marque effect.

I can not use scroll bars. Any thoughts would be welcome

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌若浮生 2024-10-26 01:23:23

数据绑定是你的朋友。

假设你有一个 ViewModel。在 ViewModel 中,您获得了一个绑定到 TextBlock Text 属性的 string 属性。

现在,您只需使用常规 C# 字符串方法在 ViewModel 中操作该字符串即可正确显示。
HTH

阿里尔

Databindings are you friend here.

suppose you got a ViewModel. and in the ViewModel you got a property of string which is binded to the TextBlock Text propetry.

Now you only need to manipulate that string inside the ViewModel using regular c# string methods to display correctly.
HTH

Ariel

各自安好 2024-10-26 01:23:23

TextBlock 级别没有什么特别的...只需使用 string.SubString

更新:这段代码应该可以解决问题:

const int maxLength = 8;

string value = "sdfdfdfsdffdsfsdf";

if (value.Length > maxLength)
   value = value.Substring(value.Length - maxLength);

There's nothing special at the TextBlock level... Just pass it the string that is formatted correctly using something like string.SubString.

UPDATE: This code should do the trick:

const int maxLength = 8;

string value = "sdfdfdfsdffdsfsdf";

if (value.Length > maxLength)
   value = value.Substring(value.Length - maxLength);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文