WPF中如何做滚动字幕?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中如何做滚动字幕?相关的知识,希望对你有一定的参考价值。

我本来想像C# Form中那样通过设置Timer控件,来后在Time_Tick函数中改变Label.Location来实现,但是我在WPF中却发现Label根本没有Location(或者Left)这个属性,谁知道字幕做啊?

方法一:用winformhost来承载你做好的winform程序。
方法二:用textblock,可以办到的。很简单。label适用与UI初始化后文字不变的情况,label每次文字的改变系统开销要大于textblock
参考技术A 用storyboard做动画吧

如何制作字幕 UILabel / UITextField / NSTextField

【中文标题】如何制作字幕 UILabel / UITextField / NSTextField【英文标题】:How to make marquee UILabel / UITextField / NSTextField 【发布时间】:2013-05-31 14:57:09 【问题描述】:

我需要在 Xcode 中制作选框 UILabel。选取框将从右向左滚动。

我试过CCScrollingLabel 也试过JHTickerView 和其他人。但是我找不到带有字幕的简单代码,没有任何视图/数组/一些愚蠢的库和其他

如何用UILabel做字幕? (UITextFieldNSTextField 也可以)。

【问题讨论】:

看看这个,可能有帮助。 ***.com/questions/3232801/… 【参考方案1】:

你需要NSTimer,你需要调用一个方法:

*这是针对 OSX 的,你可以很容易地将它转换成 iOS,NSTextFieldUILabel 有不同的方法。

-(void)awakeFromNib
    self.myTimer=[NSTimer new];
    self.fullString=@"This is a long string to be shown.";
    [self.label setAlignment:NSRightTextAlignment];



-(void)scrollText:(id)parameter
    static NSInteger len;
    [self.label setStringValue:[self.fullString substringWithRange:NSMakeRange(0, len++)]];

    if (self.label.stringValue.length==self.fullString.length) 
        [self.myTimer invalidate];
    


- (IBAction)buttonAction:(id)sender 

    self.myTimer = [NSTimer scheduledTimerWithTimeInterval:0.2f
                                                    target: self
                                                  selector:@selector(scrollText:)
                                                  userInfo: nil 
                                                   repeats:YES];

【讨论】:

Anoop:如果 NSTextField 的长度小于 NSString 的长度,则不显示完整的字符串。如何显示完整的字符串。 @ArunPratap:这种情况下,你需要截断尾部,然后添加一些逻辑来追加文本...

以上是关于WPF中如何做滚动字幕?的主要内容,如果未能解决你的问题,请参考以下文章

网页设计那个滚动字幕怎么做

WPF上下滚动字幕

html滚动字幕怎么做

ASP.NET里在WEB页里怎样做滚动字幕?

MARQUEE滚动图片的开始初始位置怎么设置

html中如何实现滚动字幕效果