2 <StackPanel>
3 <StackPanel OrIEntation="Horizontal" Background="Gray">
4 <button x:name="btnb" WIDth="30" Height="30" Content="B"
5 FontWeight="Bold" margin="2"/>
6 <button x:name="btni" WIDth="30" Height="30" Content="I"
7 FontStyle="Italic" margin="2"/>
8 <button x:name="btnu" WIDth="30" Height="30" margin="2">
9 <button.Content>
10 <TextBlock Textdecorations="Underline" Text="U"/>
11 </button.Content>
12 </button>
13 <button x:name="btnimg" WIDth="60" Height="30" Content="插入图片" margin="2"/>
14 <button x:name="btnlink" WIDth="60" Height="30" Content="插入链接" margin="2"/>
15 </StackPanel>
16 <RichTextArea x:name="richTextBox" Height="265">
17 </RichTextArea>
18 </StackPanel>
19 </GrID> 你可以在RichTextArea里添加一些默认的文本,RichTextArea的文本与TextBox不同,在RichTextArea里的文本需要包含在一个段落标记Paragraph之中,整个RichTextArea的内容都表现为一个个的Paragraph,Paragraph支持以下的XAML内容做为RichTextArea的内容: Hyperlink
Inline
InlineUIContainer
lineBreak
Run
Span
下面是一段使用段落标记的例子: 1 <Paragraph>这是Silverlight的富文本控件</Paragraph>
2 <Paragraph>
3 <Hyperlink
4 NavigateUri=" http://blog.csdn.net/dotfun"
5 Targetname="" FontSize="15">这是一个Hyperlink</Hyperlink>
6 </Paragraph>
7 <Paragraph>
8 <Span FontSize="15" Foreground="Red">
9 <Run>这是Span标记</Run>
10 </Span>
11 </Paragraph>
12 <Paragraph>
13 <InlineUIContainer x:name="uicontainter"/>
14 <lineBreak/>
15 <Run FontSize="14">使用lineBreak</Run>
16 <lineBreak/>
17 <Run>使用lineBreak</Run>
18 </Paragraph> InlineUIContainer是一个比较特殊的元素,它是一个RichTextArea中的“容器”,如果我们想在富文本框中添加Image、button或GrID之类的XAML元素时,InlineUIContainer用派上用场了,因为它可以包含任何XAML元素,这样RichTextArea的内容就打破了Paragraphr的局限性,这里我们添加了一个InlineUIContainer用来显示用户的图片。 运行结果如图: 完成我们的RichTextBox控件界面布局后,加入相应的控件功能的后台代码。 C#: 1 public RichTextBoxSample()
2 {
3 InitializeComponent();
4 this.Loaded += new RoutedEventHandler(RichTextBoxSample_Loaded);
5 }
6
7 //注册富文本控件按钮事件
8 voID RichTextBoxSample_Loaded(object sender,RoutedEventArgs e)
9 {
10 this.btnb.Click += new RoutedEventHandler(btnb_Click);
11 this.btni.Click += new RoutedEventHandler(btni_Click);
12 this.btnimg.Click += new RoutedEventHandler(btnimg_Click);
13 this.btnlink.Click += new RoutedEventHandler(btnlink_Click);
14 this.btnu.Click += new RoutedEventHandler(btnu_Click);
15 }
16
17 voID btnlink_Click(object sender,RoutedEventArgs e)
18 {
19 //输入链接路径
20 string url = HTMLPage.Window.Prompt(String.Empty);
21 //添加图片插入到InlineUIContainer之中
22 Hyperlink hl = new Hyperlink()
23 {
24 NavigateUri = new Uri(url,UriKind.relativeOrabsolute)
25 };
26 hl.Inlines.Add(url);
27 //添加段落标记
28 Paragraph pg = new Paragraph();
29 pg.Inlines.Add(hl);
30 //添加段落标记到RichTextArea
31 richTextBox.Blocks.Add(pg);
32 }
33
34 voID btnimg_Click(object sender,RoutedEventArgs e)
35 {
36 //输入图片路径
37 string url = HTMLPage.Window.Prompt(String.Empty);
38 //添加图片插入到InlineUIContainer之中
39 Image img = new Image()
40 {
41 WIDth = 200,
42 Height = 150,
43 Source = new BitmAPImage(new Uri(url,UriKind.relativeOrabsolute))
44 };
45 uicontainter.Child = img;
46 }
47
48 voID btni_Click(object sender,RoutedEventArgs e)
49 {
50 richTextBox.Selection.SetPropertyValue(TextElement.FontStyleProperty,FontStyles.Italic);
51 }
52
53 voID btnb_Click(object sender,RoutedEventArgs e)
54 {
55 richTextBox.Selection.SetPropertyValue(TextElement.FontWeightProperty,FontWeights.Bold);
56 }
57
58 voID btnu_Click(object sender,RoutedEventArgs e)
59 {
60 richTextBox.Selection.SetPropertyValue(TextElement.TextdecorationsProperty,Textdecorations.Underline);
61 } 运行结果如图所示。 加粗 下划线 倾斜 插入图片: 用户输入图片URL 图片添加到RichTextArea 插入链接: 用户输入超级链接URL 超级链接添加到RichTextArea
RichTextArea具有Selection属性,这是一个很有用的属性,它可以取得富文本框中用户取选的文本单位,这样一来,我们就可以使用SetPropertyValue来改变用户选取区域的样式,Selection还有Text属性,可以取得用户所选的文本字符串,我们可以用来做“复制”、“粘贴”之类的功能。 以上就是一个简单功能的Silverlight版本RichTextBox,建议大家在此基础上进一步扩展它的功能做出更完美的Silverlight富文本控件。 总结
以上是内存溢出为你收集整理的风云的银光志Silverlight4.0教程之富文本控件RichTextArea(RichTextBox)全部内容,希望文章能够帮你解决风云的银光志Silverlight4.0教程之富文本控件RichTextArea(RichTextBox)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)