c# wpf 多个textblock滚动字幕怎么实现?

如题所示,想做个滚动报警信息的功能,报警是动态的,如果报警忽然消失了,这条textblock也消失了,我想要n个textblock拍成一行(text是动态队列,随时可能消失),然后从右往左滚动,当最后一个字符消失在屏幕上时,重复以上步骤,这个如何实现代码?

可以通过使用 WPF 中的 ListBox 控件来实现您所需的滚动报警信息功能,具体步骤如下:


在代码中使用 ObservableCollection 存储报警信息,并将其绑定到 ListBox 控件的 ItemsSource 属性上,如下所示:

在代码中使用 DispatcherTimer 定时器,定时更新 ListBox 控件中的报警信息,以及实现报警信息的滚动效果。具体来说,可以在定时器的 Tick 事件中,循环遍历 ListBox 控件中的每个 ListBoxItem,使用 DoubleAnimation 对其 Canvas.Left 属性进行动画处理,实现滚动效果。同时,在动画结束后,将已经滚出屏幕的 ListBoxItem 从 ListBox 控件中移除,如下所示:

以上是一个简单的滚动报警信息功能的实现方法。您可以根据自己的需求进行调整和优化。

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-02-20
要实现多个 TextBlock 滚动字幕,你可以使用 WPF 中的 ScrollViewer 控件来实现。具体步骤如下:
1.在 XAML 中定义一个 ScrollViewer 控件,将其内容设置为一个 StackPanel,然后将所有的 TextBlock 放在 StackPanel 中。
xml:

2. 在 C# 代码中使用一个计时器,每隔一定时间滚动一定距离。你可以通过设置 ScrollViewer 的 VerticalOffset 属性来实现滚动,例如:
csharp:
double scrollSpeed = 2; // 每隔多少毫秒滚动的距离
double scrollAmount = 1; // 每次滚动的距离
DispatcherTimer timer = new DispatcherTimer();
public MainWindow()
{
InitializeComponent();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = TimeSpan.FromMilliseconds(scrollSpeed);
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
scrollViewer1.ScrollToVerticalOffset(scrollViewer1.VerticalOffset + scrollAmount);
}
上面的代码中,我们使用一个名为 timer 的计时器来控制滚动速度。在 timer_Tick 方法中,我们将 scrollViewer1 的 VerticalOffset 属性增加 scrollAmount,从而实现向上滚动字幕。
注意,这只是一个简单的示例代码,你可以根据实际需求来调整滚动速度和滚动距离。同时,为了避免滚动速度过快,你可能需要根据 TextBlock 的实际高度和显示区域的高度来动态调整滚动距离。
第2个回答  2023-02-20
C是一种通用计算机编程语言,由丹尼斯·里奇于20世纪70年代创建。它提供对系统内存的低级访问,并用于创建人类可读和有序指令集的程序。

c# wpf 多个textblock滚动字幕怎么实现?
可以通过使用 WPF 中的 ListBox 控件来实现您所需的滚动报警信息功能,具体步骤如下:在代码中使用 ObservableCollection 存储报警信息,并将其绑定到 ListBox 控件的 ItemsSource 属性上,如下所示:在代码中使用 DispatcherTimer 定时器,定时更新 ListBox 控件中的报警信息,以及实现报警信息的滚动效果。具...

wpf 滚动字幕怎么动态适应长度?
以下是一种实现动态适应长度的滚动字幕的方式:1.在WPF中,可以使用ScrollViewer和TextBlock控件来实现滚动字幕。将TextBlock放在ScrollViewer中,并设置TextBlock的Width属性为Double.PositiveInfinity,这样TextBlock将占用整个ScrollViewer的宽度。2.在代码中,可以使用DoubleAnimation动画来控制TextBlock的水平偏移...

WPF中如何做滚动字幕?
方法一:用winformhost来承载你做好的winform程序。方法二:用textblock,可以办到的。很简单。label适用与UI初始化后文字不变的情况,label每次文字的改变系统开销要大于textblock

为什么WPF的TextBlock的滚动条不成功下面这代码有什么有关问题_百度...
那就通过ContentPresente获取呗~不一定非要取到TextBlock嘛首行你要确定你的控件是在dgList.Columns[0]位置?DataRowViewDRV=(e.EditingElementasSystem.Windows.Controls.ContentPresente).ContentasDataRowView;rowView["ARVDAT"]=Convert.ToDateTime(DRV.Row[0].ToString());

WPF 怎么让TextBlock中的文本可以用鼠标选中并复制
WPF 怎么让TextBlock中的文本可以用鼠标选中并复制 20  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览12 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 鼠标 wpf textblock 文本 搜索资料 本地图片 图片链接 代码 提交回答 匿名 回答自动保存中...

WPF,TextBlock的这个绑定怎么实现
你可以自己写一个继承自 IValueConverter 的转换器,负责将string转换为颜色画刷。然后将 TextBlock 的前景色与这个控件自身的Text属性绑定在一起,并且绑定时使用这个自定义的转换器。你可以看看如何将一个控件的某属性与另一个控件的属性绑定(这里则是Name相同的同一个控件的两个属性),以及如何编写一...

WPF 入门教程 TextBlock内嵌元素
当需要从C#\/Code-Behind文件中进行文本格式化时,尽管过程较为复杂,但通过正确的方法依然可以实现。这为更深入的自定义和复杂需求提供了可能。推荐使用开源框架《Newbeecoder.UI》,该框架提供了一系列WPF MVVM控件,进一步简化了开发过程,提升开发效率。总之,TextBlock控件的内嵌元素为WPF应用提供了强大的...

WPF(C#)中如何让数据库数据逐个显示在textblock中?
首先取得第一行 取得两列内容为两个变量 设置控件值或绑定

WPF滚动控件ScrollViewer
在WPF开发中,滚动控件ScrollViewer用于实现内容的滚动功能。内容控件放置为ScrollViewer的默认内容,通常内容控件会作为可以承载子元素集合的Panel元素的子元素。启用滚动最简便的方法是在ScrollViewer中放置内容控件。例如,将StackPanel作为内容,StackPanel中包含一个TextBlock和一个Rectangle。StackPanel被放置于...

wpf中,怎么把textblock.effect 动态引用
这种问题应该用Animation来处理,你可以搜索关于WPF Animation方面的信息。 基本上将TextBlock放置到一个Canvas中,为TextBlock定义Animation。 上边表示,TextBlock用1s中从右移动100个像素。 网上示例很多,你可以参考一下。

相似回答
大家正在搜