[Silverlight 4 RC]RichTextBox概览

我们知道在silverlight 4 beta的时候增加了RichTextArea的控件。做过RIA开发的朋友富媒体在动态文本的表现渲染方面是很弱的。我们看到的很多富媒体网站比如新闻模块,如果想要图文混排的板式的话很多都是新开一个Html页面来做的展示。
这里来看看silverlight 4 RC都带来了什么。
首先RichTextArea更名为RichTextBox。
RichTextBox他定义在“System.Windows.Controls”,这也就是说RichTextBox是silverlight内置的一个控件了,你并不需要再去添加“Silverlight Toolkit”的引用。
这里添加一个RichTextBox
1
2
3
<grid x:name="LayoutRoot" background="White">
    <richtextbox>
</richtextbox></grid>
RichTextBox支持了一种“模块”内容。这里模块可以包含“段落”元素(Paragraph elements)。这里段落元素有可以包含内嵌元素比如:粗体、链接、下划线。通过Inline的UI容器他还能包含图像元素、按钮控件等。
1
2
3
4
5
<richtextbox x:name="RTB">
    <paragraph>
        RichTextBox包含<bold>粗体</bold>内容.
    </paragraph>
</richtextbox>

这里在增加一段Paragraph
1
2
3
4
5
6
7
8
<richtextbox x:name="RTB">
    <paragraph>
        RichTextBox包含<bold>粗体</bold>内容.
    </paragraph>
    <paragraph>
       显示链接<hyperlink navigateuri="http://nasa.cnblogs.com">《我和未来有约会》</hyperlink> .
    </paragraph>
</richtextbox>

加入图形元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<richtextbox x:name="RTB">
    <paragraph>
        RichTextBox包含<bold>粗体</bold>内容.
    </paragraph>
    <paragraph>
       显示链接<hyperlink navigateuri="http://nasa.cnblogs.com">《我和未来有约会》</hyperlink> .
    </paragraph>
    <paragraph>
        显示图形
        <inlineuicontainer>
            <img source="./doodler.png" height="50" width="50">
        </inlineuicontainer>
    </paragraph>
</richtextbox>

另外RichTextBox还有只读属性用来做显示。
其次RichTextBox增加了很多的API,比如:当前光标位置position、当前选中文本selection等等......
一个简单的Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void BtnBold_Click(object sender, System.Windows.RoutedEventArgs e)
{
    object o = RTB.Selection.GetPropertyValue(TextElement.FontWeightProperty);
    if (o.ToString() != "Bold")
        RTB.Selection.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);
}
 
private void BtnItalic_Click(object sender, System.Windows.RoutedEventArgs e)
{
    object o = RTB.Selection.GetPropertyValue(TextElement.FontWeightProperty);
    if (o.ToString() != "Italic")
        RTB.Selection.ApplyPropertyValue(TextElement.FontStyleProperty, FontStyles.Italic);
}
 
private void BtnUnderline_Click(object sender, System.Windows.RoutedEventArgs e)
{
    RTB.Selection.ApplyPropertyValue(Inline.TextDecorationsProperty, TextDecorations.Underline);
}
posted @   王喆(nasa)  阅读(4900)  评论(9编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示