
WPF TextBlock TextRange 设置颜色位置问题
publicMainWindow(){InitializeComponent();txt.Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
public MainWindow()
{
InitializeComponent();
txt.Text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
t.Interval = 1000;
t.Start();
}
int i = 0;
void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Dispatcher.Invoke(new Action(() => {
TextPointer p=txt.Inlines.ToList()[0].ContentStart;
var r=new TextRange(p.GetPositionAtOffset(i), p.GetPositionAtOffset(i + 1));
r.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Color.FromRgb(0, 222, 0)));
i+=1;
r=new TextRange(p.GetPositionAtOffset(i), p.GetPositionAtOffset(i + 1));
r.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Color.FromRgb(222, 22, 0)));
if (i > 20) i = 0;
}));
}
System.Timers.Timer t = new System.Timers.Timer();
一个绿色文字一个红色文字向后移动的效果
一直测试不怎么成功 选择的文字数量跟颜色好像有 什么关系。。。 展开
{
InitializeComponent();
txt.Text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
t.Interval = 1000;
t.Start();
}
int i = 0;
void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Dispatcher.Invoke(new Action(() => {
TextPointer p=txt.Inlines.ToList()[0].ContentStart;
var r=new TextRange(p.GetPositionAtOffset(i), p.GetPositionAtOffset(i + 1));
r.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Color.FromRgb(0, 222, 0)));
i+=1;
r=new TextRange(p.GetPositionAtOffset(i), p.GetPositionAtOffset(i + 1));
r.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Color.FromRgb(222, 22, 0)));
if (i > 20) i = 0;
}));
}
System.Timers.Timer t = new System.Timers.Timer();
一个绿色文字一个红色文字向后移动的效果
一直测试不怎么成功 选择的文字数量跟颜色好像有 什么关系。。。 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏200(财富值+成长值)
1个回答
展开全部
可不可以说一下你想实现什么?
更多追问追答
追问
实现设置指定位置 指定数量的文字颜色 我尝试过用richTextBox控件设置指定位置的文字颜色 但是发现 当连续设置不同颜色不同的位置时设置的变色文字字数不对……不知道什么原因。
用同样的方法改变了设置的颜色之后 设置改变颜色的字数也改变了……感觉应该是WPF的BUG
测试的是net3.5版本 其他的还没测试
追答
能不能详细点,你上面的代码是想指定哪些位置、数量、颜色呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询