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();

一个绿色文字一个红色文字向后移动的效果
一直测试不怎么成功 选择的文字数量跟颜色好像有 什么关系。。。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏200(财富值+成长值)
阳光的雷咩咩
2015-10-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:8253万
展开全部
可不可以说一下你想实现什么?
更多追问追答
追问
实现设置指定位置 指定数量的文字颜色 我尝试过用richTextBox控件设置指定位置的文字颜色 但是发现 当连续设置不同颜色不同的位置时设置的变色文字字数不对……不知道什么原因。
用同样的方法改变了设置的颜色之后 设置改变颜色的字数也改变了……感觉应该是WPF的BUG
测试的是net3.5版本 其他的还没测试
追答
能不能详细点,你上面的代码是想指定哪些位置、数量、颜色呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式