Silverlight控件使用指南
立即解锁
发布时间: 2025-08-26 01:40:46 阅读量: 15 订阅数: 26 AIGC 

# Silverlight 控件使用指南
## 1. ComboBox 类型提前输入功能
ComboBox 在打开或关闭时,用户都可以通过键盘输入来选择项目,打开时操作更方便,因为能看到完整的项目列表。例如,列表中有两个以字母 E 开头的项目:Elephant 和 Elevator。当用户输入字母 E 时,Silverlight 会自动选择第一个项目 Elephant;若用户输入 Elev,选择会跳转到下一个项目 Elevator。
需要注意的是,ComboBox 的类型提前输入功能只是一个基本的快捷方式,若想要更强大的自动完成功能,能控制匹配方式,甚至从 Web 服务获取动态建议列表,就需要使用 AutoCompleteBox 控件。
## 2. TabControl 控件
### 2.1 概述
TabControl 是一个实用的容器,可将大量用户界面浓缩到一组标签页中。在 Silverlight 中,TabControl 是一个项控件,可容纳一个或多个 TabItem 元素。
### 2.2 添加和使用
当将 TabControl 添加到页面时,Visual Studio 会添加对 `System.Windows.Controls.dll` 程序集的引用,并映射一个新的 XML 命名空间,示例如下:
```xml
<UserControl xmlns:controls=
"clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
... >
```
要使用 TabControl,需向其中填充一个或多个 TabItem 元素,每个 TabItem 代表一个单独的页面。由于 TabItem 是内容控件,它可以容纳其他 Silverlight 元素,如布局容器。
以下是一个包含两个标签的 TabControl 示例:
```xml
<controls:TabControl>
<controls:TabItem Header="Tab One">
<StackPanel Margin="3">
<CheckBox Margin="3" Content="Setting 1"></CheckBox>
<CheckBox Margin="3" Content="Setting 2"></CheckBox>
<CheckBox Margin="3" Content="Setting 3"></CheckBox>
</StackPanel>
</controls:TabItem>
<controls:TabItem Header="Tab Two">
...
</controls:TabItem>
</controls:TabControl>
```
TabItem 通过 `TabItem.Content` 属性保存其内容(如上述示例中的 StackPanel)。此外,TabItem 还有一个 `Header` 属性,可容纳任意内容。在前面的示例中,`Header` 仅包含一个简单的文本字符串,实际上也可以填充图形内容或包含多个元素的布局容器,示例如下:
```xml
<controls:TabControl>
<controls:TabItem>
<controls:TabItem.Header>
<StackPanel>
<TextBlock Margin="3">Image and Text Tab Title</TextBlock>
<Image Source="happyface.jpg" Stretch="None" />
</StackPanel>
</controls:TabItem.Header>
<StackPanel Margin="3">
<CheckBox Margin="3" Content="Setting 1"></CheckBox>
<CheckBox Margin="3" Content="Setting 2"></CheckBox>
<CheckBox Margin="3" Content="Setting 3"></CheckBox>
</StackPanel>
</controls:TabItem>
<controls:TabItem Header="Tab Two">
...
</controls:TabItem>
</controls:TabControl>
```
### 2.3 事件和属性
TabControl 包含一个 `SelectionChanged` 事件,当可见标签更改时触发。它还有 `SelectedIndex` 属性和 `SelectedItem` 属性,可用于确定或设置当前标签。此外,TabControl 还添加了 `TabStripPlacement` 属性,可让标签显示在控件的侧面或底部,而非默认的顶部。
## 3. 文本控件
### 3.1 TextBox 控件
#### 3.1.1 基本功能
基本的 TextBox 通过 `Text` 属性存储字符串。可以使用 `TextAlignment` 属性更改文本的对齐方式,还可以使用相关属性控制文本框内文本的字体。TextBox 支持许多 Windows 世界中对应控件的功能,如滚动、文本换行、剪贴板剪切和粘贴以及选择等。
通常,TextBox 控件存储单行文本,可通过设置 `MaxLength` 属性限制允许的字符数。若要让文本跨越多行,有两种方法:一是使用 `TextWrapping` 属性启用换行;二是将 `AcceptsReturn` 属性设置为 `true`,允许用户使用 Enter 键插入换行符。
有时,创建文本框仅用于显示文本,此时可将 `IsReadOnly` 属性设置为 `true` 以防止编辑,这比将 `IsEnabled` 属性设置为 `false` 禁用文本框更好,因为禁用的文本框显示灰色文本,难以阅读,且不支持选择或复制到剪贴板。
#### 3.1.2 文本选择
可以通过鼠标点击并拖动或按住 Shift 键同时使用箭头键在文本框中选择文本。TextBox 类还允许通过 `SelectionStart`、`SelectionLength` 和 `SelectedText` 属性以编程方式确定或更改当前选择的文本。
- `SelectionStart`:标识选择开始的从零开始的位置。例如,将此属性设置为 10,则第一个选择的字符是文本框中的第 11 个字符。
- `SelectionLength`:表示选择的字符总数,值为 0 表示没有选择字符。
- `SelectedText`:可用于快速检查或更改文本框中选择的文本。
可以通过处理 `SelectionChanged` 事件来响应选择的更改,示例代码如下:
```csharp
private void txt_SelectionChanged(object sender, RoutedEventArgs e)
{
if (txtSelection == null) return;
txtSelection.Text = String.Format(
"Selection from {0} to {1} is \"{2}\"",
txt.SelectionStart, txt.SelectionLength, txt.SelectedText);
}
```
### 3.2 剪贴板的编程使用
Silverlight 在 `System.Windows` 命名空间中包含一个 `Clipboard` 类,提供了三个静态方法来处理 Windows 剪贴板:
| 方法 | 描述 |
| ---- | ---- |
|
0
0
复制全文
相关推荐









