欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

windows phone7.1中两个新增控件

程序员文章站 2022-07-03 18:38:42
richtextbox在wp7中,所有的控件都无法实现图文混排,这个控件解决了无法图文混排的问题,使微博和聊天软件不在只是文字显示那么单调了。但是这个控件目前还并不完善,只能够显示而无法进行输入,另...

richtextbox
在wp7中,所有的控件都无法实现图文混排,这个控件解决了无法图文混排的问题,使微博和聊天软件不在只是文字显示那么单调了。但是这个控件目前还并不完善,只能够显示而无法进行输入,另外使用起来也比较麻烦。以下就是这个控件的使用方法:

1.       xaml中直接添加

这个控件无法显示在toolbox列表中,需要通过手工方式来自已添加。


<richtextbox width="400" height="400" background="white" isreadonly="true" fontsize="30" verticalcontentalignment="top">

                <paragraph>

                    <run foreground="red" fontstyle="italic" text="red text"/>

                </paragraph>

                <paragraph foreground="blue">

                    <run text="blue text "/>

                    <bold>this is bold</bold>

                </paragraph>

                <paragraph foreground="black">

                    <run text="black text "/>

                    <hyperlink>click here</hyperlink>

                    <bold>test bold text</bold>

                </paragraph>

                <paragraph>

                    a richtextbox with<bold>initial content</bold> in it.

                </paragraph>

       

            </richtextbox>
 

这样就实现了图文混排,以及多种文字效果的同时显示。

2.       代码实现


richtextbox rtb = new richtextbox();

            rtb.width = 400;

            rtb.height = 400;

            rtb.fontsize = 30;

            rtb.background = new solidcolorbrush(colors.white);

            rtb.verticalcontentalignment = system.windows.verticalalignment.top;

 

            paragraph parag = new paragraph();

            run run = new run();

            run.foreground = new solidcolorbrush(colors.red);

            run.text = "red text";

            parag.inlines.add(run);

            rtb.blocks.add(parag);

 

            parag = new paragraph();

            parag.foreground = new solidcolorbrush(colors.blue);

            run = new run();

            run.text = "blue text";

            parag.inlines.add(run);

 

 

            bold bold = new bold();

            bold.inlines.add("this is bold text");

            parag.inlines.add(bold);

 

            rtb.blocks.add(parag);

 

            parag = new paragraph();

            parag.foreground = new solidcolorbrush(colors.black);

            run = new run();

            run.text = "black text";

            parag.inlines.add(run);

 

            hyperlink hl = new hyperlink();

            hl.inlines.add("click here");

            parag.inlines.add(hl);

 

            bold = new bold();

            bold.inlines.add("test bold text");

            parag.inlines.add(bold);

            run = new run();

            run.text = "a richtextbox with";

            parag.inlines.add(run);

            bold = new bold();

            bold.inlines.add("initial content");

            parag.inlines.add(bold);

            run = new run();

            run.text = "in it.";

            parag.inlines.add(run);

 

            rtb.blocks.add(parag);

 

            contentpanel.children.add(rtb);
 

这两种方法实现的是同一个效果。


3.       注意事项

l 这个控件在加入到工程之前,需要在app.xaml文件的resource节中添加如下xaml,否则无法显示。


<application.resources>

        <style targettype="richtextbox">

            <setter property="fontsize" value="{staticresource phonefontsizenormal}" />

   &