XAML - 搜索框



搜索框表示一个可用于输入搜索查询文本的控件。WPF 项目不支持搜索框,因此它将在 Windows 应用中实现。搜索框类的层次继承如下:

SearchBox Hierarchy

属性

序号 属性和描述
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** 的 **搜索结果页**。默认实现足以运行此应用。

编译并执行上述代码后,将产生以下输出:

SearchBox Output

建议您执行上述示例代码并尝试其他一些属性和事件。

xaml_controls.htm
广告