- XAML 教程
- XAML - 首页
- XAML - 概述
- XAML - 环境设置
- 在 macOS 上编写 XAML 应用程序
- XAML 与 C# 代码
- XAML 与 VB.NET
- XAML - 构建块
- XAML - 控件
- XAML - 布局
- XAML - 事件处理
- XAML - 数据绑定
- XAML - 标记扩展
- XAML - 依赖属性
- XAML - 资源
- XAML - 模板
- XAML - 样式
- XAML - 触发器
- XAML - 调试
- XAML - 自定义控件
- XAML 有用资源
- XAML - 快速指南
- XAML - 有用资源
- XAML - 讨论
XAML - 搜索框
搜索框表示一个可用于输入搜索查询文本的控件。WPF 项目不支持搜索框,因此它将在 Windows 应用中实现。搜索框类的层次继承如下:
属性
序号 | 属性和描述 |
---|---|
1 | PlaceholderText 获取或设置在用户操作或其他操作更改值之前显示在控件中的文本。 |
2 | ChooseSuggestionOnEnter 获取或设置一个值,该值确定用户按 Enter 键时是否激活建议的搜索查询。 |
3 | ChooseSuggestionOnEnterProperty 标识 ChooseSuggestionOnEnter 依赖属性。 |
4 | FocusOnKeyboardInput 获取或设置一个值,该值确定用户是否可以通过在应用程序中的任何位置键入来进行搜索。 |
5 | FocusOnKeyboardInputProperty 标识 FocusOnKeyboardInput 依赖属性。 |
6 | PlaceholderTextProperty 标识 PlaceholderText 依赖属性。 |
7 | QueryText 获取或设置搜索框的文本内容。 |
8 | QueryTextProperty 标识 QueryText 依赖属性。 |
9 | SearchHistoryContext 获取或设置标识搜索上下文并用于将用户的搜索历史记录与应用程序一起存储的字符串。 |
10 | SearchHistoryContextProperty 标识 SearchHistoryContext 依赖属性。 |
11 | SearchHistoryEnabled 获取或设置一个值,该值确定是否根据搜索历史记录提供搜索建议。 |
12 | SearchHistoryEnabledProperty 标识 SearchHistoryEnabled 依赖属性。 |
事件
序号 | 事件和描述 |
---|---|
1 | PrepareForFocusOnKeyboardInput 当 FocusOnKeyboardInput 属性为 true 且应用程序接收文本键盘输入时发生。 |
2 | QueryChanged 查询文本更改时发生。 |
3 | QuerySubmitted 用户提交搜索查询时发生。 |
4 | ResultSuggestionChosen 用户选择建议的搜索结果时发生。 |
5 | SuggestionsRequested 当用户的查询文本更改且应用程序需要提供新的建议以在搜索窗格中显示时发生。 |
方法
序号 | 方法和描述 |
---|---|
1 | OnManipulationCompleted 在 ManipulationCompleted 事件发生之前调用。(继承自 Control) |
2 | OnManipulationDelta 在 ManipulationDelta 事件发生之前调用。(继承自 Control) |
3 | OnManipulationInertiaStarting 在 ManipulationInertiaStarting 事件发生之前调用。(继承自 Control) |
4 | OnManipulationStarted 在 ManipulationStarted 事件发生之前调用。(继承自 Control) |
5 | OnManipulationStarting 在 ManipulationStarting 事件发生之前调用。(继承自 Control) |
6 | OnMaximumChanged 当 Maximum 属性更改时调用。(继承自 RangeBase) |
7 | OnMinimumChanged 当 Minimum 属性更改时调用。(继承自 RangeBase) |
8 | OnValueChanged 触发 ValueChanged 路由事件。(继承自 RangeBase) |
9 | SetBinding 使用提供的绑定对象将绑定附加到 FrameworkElement。(继承自 FrameworkElement) |
10 | SetLocalContentSuggestionSettings 指定是否在搜索框建议中自动显示基于本地文件的建议,并定义 Windows 用于查找和筛选这些建议的条件。 |
11 | SetValue 设置 DependencyObject 上依赖属性的局部值。(继承自 DependencyObject) |
12 | StartDragAsync 启动拖放操作。(继承自 UIElement) |
13 | UnregisterPropertyChangedCallback 取消先前通过调用 RegisterPropertyChangedCallback 注册的更改通知。(继承自 DependencyObject) |
示例
以下示例演示了在 XAML 应用程序中使用搜索框。以下是创建和初始化具有某些属性和事件的搜索框的 XAML 代码。
<Page x:Class = "XAML_SearchBox.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local = "using:XAML_SearchBox" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d"> <Grid Background = "{ThemeResource ApplicationPageBackgroundThemeBrush}"> <SearchBox x:Name = "mySearchBox" FocusOnKeyboardInput = "False" QuerySubmitted = "mySearchBox_QuerySubmitted" Height = "35" Width = "400" Margin = "234,132,732,601"/> </Grid> </Page>
以下是 C# 中的搜索查询实现:
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 namespace XAML_SearchBox { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private void mySearchBox_QuerySubmitted(SearchBox sender, SearchBoxQuerySubmittedEventArgs args) { this.Frame.Navigate(typeof(SearchResultsPage1), args.QueryText); } } }
在此示例的 Windows 应用项目中,添加一个名为 **SearchResultsPage1.xaml** 的 **搜索结果页**。默认实现足以运行此应用。
编译并执行上述代码后,将产生以下输出:
建议您执行上述示例代码并尝试其他一些属性和事件。