Silverlight控件使用指南:AutoCompleteBox与RichTextBox
立即解锁
发布时间: 2025-08-26 01:27:51 阅读量: 4 订阅数: 13 


Silverlight 4 in VB: 创建跨平台浏览器应用程序
### Silverlight 控件使用指南:AutoCompleteBox 与 RichTextBox
#### 1. AutoCompleteBox 的异步操作与属性调整
在 Silverlight 应用程序中,当异步操作完成并接收到结果时,需要将建议列表填充到 `AutoCompleteBox` 的 `ItemsSource` 属性中,然后调用 `PopulateComplete()` 方法通知控件新数据已到达。以下是一个示例回调处理程序:
```vb
Private Sub GetProductMatchesCompleted(ByVal sender As Object, _
ByVal e As GetProductMatchesCompletedEventArgs)
' Check for a web service error.
If e.Error IsNot Nothing Then
lblStatus.Text = e.Error.Message
Return
End If
' Set the suggestions.
acbProducts.ItemsSource = e.Result
' Notify the control that the data has arrived.
acbProducts.PopulateComplete()
End Sub
```
当填充 `AutoCompleteBox` 需要耗时或进行异步操作时,可以调整两个属性:`MinimumPrefixLength` 和 `MinimumPopupDelay`。
- `MinimumPrefixLength`:确定在 `AutoCompleteBox` 给出建议之前必须输入的文本长度。通常,在输入第一个字母后就会提供建议。若希望在输入三个字母后才给出建议,可将 `MinimumPrefixLength` 设置为 3。
- `MinimumPopupDelay`:可强制 `AutoCompleteBox` 在用户最后一次按键后的特定时间间隔后才显示建议。这样可以避免对慢速 Web 服务进行大量重叠调用。
#### 2. RichTextBox 概述
RichTextBox 是一个支持丰富格式的可编辑文本框控件,与普通的 TextBox 不同,它允许对单个单词或整个段落等部分文本应用不同的字体和颜色,还支持图像、链接和内联元素(如下拉列表和按钮),且在任何应用程序中都易于使用。
#### 3. 文本元素模型
在理解 RichTextBox 之前,需要了解其使用的文本元素模型。普通文本框存储的是字符串,而 RichTextBox 存储的是整个文档,由一组文本元素(有时称为流元素)表示。文本元素与常见的 UIElement 和 FrameworkElement 类不同,它们继承自 DependencyObject 和 TextElement,更为简单,不支持事件,且主要提供与格式相关的属性。
文本元素主要分为两个关键分支:
- **块元素**:有 Paragraph 和 Section 两个类。Paragraph 可以包含文本和内联元素的组合;Section 可以包含一组段落(或一组 Section),但必须通过编程方式创建,不能在 XAML 中使用。
- **内联元素**:嵌套在块元素(或其他内联元素)内部,包括用于格式化文本的元素(Bold、Italic、Underline、Run)、创建硬换行的元素(LineBreak)、添加超链接的元素(Hyperlink)以及嵌入其他控件的元素(InlineUIContainer)。Span 容器可将多个内联元素组合在一起。
以下是一个包含预填充内容的 RichTextBox 示例:
```xml
<RichTextBox Margin="5" x:Name="richText">
<Paragraph Foreground="DarkRed" FontFamily="Trebuchet MS" FontSize="22"
FontWeight="Bold" TextAlignment="Center">Chapter I</Paragraph>
<Paragraph>
<Bold><Italic><Run FontSize="12">The Period</Run></Italic></Bold>
</Paragraph>
<Paragraph>
It was the best of times, it was the worst of times, it was the age of ...
<LineBreak></LineBreak>
</Paragraph>
<Paragraph>
There were a king with a large jaw and a queen with a plain face, on the ...
</Paragraph>
</RichTextBox>
```
#### 4. 文本元素的格式化
可以使用两种方法对文本元素进行格式化:
- **使用属性**:通过设置文本元素类的属性来应用格式,这些属性大多继承自基类 TextElement。以下是可设置的属性列表:
| 属性名 | 描述 |
| ---- | ---- |
| Foreground | 接受用于绘制前景文本的画笔。不能为单个文本元素设置背景,但可以使用 RichTextBox.Background 属性为整个文档设置背景。 |
| FontFamily, FontSize, FontStret
0
0
复制全文
相关推荐










