理解 AutoSuggestBox In 超人

by Santhakumar Munuswamy

  Posted on  31 七月 2016

  超人


 

In this article we will discuss how to implement the AutoSuggestBox in UWP. We have discussed about the AppBar and 命令栏 implementation in the my previous article. As you all know AutoSuggestBox is a 默认 classes on the 视窗.UI.Xaml.Controls package in Windows Runtime APIs.

普遍 Windows Platform Series

背景

AutoSuggestBox is a UI control and which is used to list of suggestion to select from the user input. We can able to customize the 控制 and its enable to the search functionality in AutoSuggestBox. They are three important item such as Text Changed, 建议 chosen, Query submitted in AutoSuggestBox.

  • 文本 Changed - When the user enters text, update the suggestion list.
  • 建议 chosen - When the user chooses a suggestion in the suggestion list, update the text box.
  • 询问 submitted - When the user submits a query, show the query results.

怎么样 to implement AutoSuggestBox and run UWP App

We are going to discuss how to implement AutoSuggestBox with a sample apps on UWP and show the demo in multiple device. We will see the step by step guidelines for the UWP AutoSuggestBox app creation here

步 1:

打开 Visual Studio 2015. Go to file menu, point to new and then click new project. 

新 Project window will open, you can select a installed template like “ Universal” under the 

视窗 on Visual C# Template, and then select a Blank App (Universal Windows) and type 

项目 Name UWPAutoSuggestBox. Choose the project location path and then click on the OK button.

现在, you can see the UWPAutoSuggestBox project structure as in the following screen shot.

步 2:

As you all know, we have discussed project folder structure and files on my previous article at earlier. 

步 3:

As you all know, we have toolbox available on visual studio in that which is available on 

AutoSuggestBox control in the below screen shots

 

现在, you can see the auto generated code as below

<AutoSuggestBox HorizontalAlignment="Left" VerticalAlignment="Top"/>

搜索.xaml

<Page
    x:Class="超人AutoSuggestBox.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPAutoSuggestBox"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.TopAppBar>
        <CommandBar ClosedDisplayMode="Minimal"  背景="#1FA2E1">          
        </CommandBar>
    </Page.TopAppBar>
    <Page.BottomAppBar>
        <CommandBar ClosedDisplayMode="Minimal" 背景="#1FA2E1"></CommandBar>
    </Page.BottomAppBar>
    <Grid 背景="{ThemeResource 应用程式licationPageBackgroundThemeBrush}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"></RowDefinition>
        </Grid.RowDefinitions>
        <StackPanel Grid.Column="0" Grid.Row="0">
          <AutoSuggestBox PlaceholderText="搜索" 名称="AutoSeggestBox" Padding="15 100 15 15" 询问Icon="Find" 文本Changed="AutoSuggestBox_TextChanged" 
建议Chosen="AutoSuggestBox_SuggestionChosen" 询问Submitted="AutoSeggestBox_QuerySubmitted"/> </StackPanel> </Grid> </Page>

搜索.xaml.cs

using 视窗.UI.Xaml.Controls;
using System.Collections.Generic;
using System;
using System.Linq;

// The 空白 Page 项目 模板 is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace 超人AutoSuggestBox
{
    /// <summary>
    /// An empty page 那 能够 be 用过的 on 它的 own or navigated to 与in a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            这个.InitializeComponent();
        }
        List<string> _listSuggestion = null;
        private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
        {
            if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
            {
                    List<string> _nameList = 新 List<string>();        
                    _nameList.Add("Santhakumar");
                    _nameList.Add("Vishanth");
                    _nameList.Add("Dinesh");
                    _nameList.Add("Srinivasan");
                    _nameList.Add("Nandhakumar");
                   _listSuggestion = _nameList.Where(x => x.StartsWith(sender.Text)).ToList();
                    sender.ItemsSource = _listSuggestion;               
            }
        }
       
        private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
        {
            var 选择edItem = args.SelectedItem.ToString();
            sender.Text = 选择edItem;
        }

        private void AutoSeggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
        {
            if (args.ChosenSuggestion != null)
            {
                AutoSeggestBox.Text = args.ChosenSuggestion.ToString();
            }

        }
    }
}

步 4: 

现在, if you can run the 超人AutoSuggestBox 应用程式s with the different devices, you can see how an 应用 看起来 

as shown below: 

选择 a Debug and 移动 Emulator 10.0.10586.0 WVGA4 inch 512 MB option to run the apps

选择 a Debug and 本地 Machine option to run the apps

步 5:

现在, Lets start to run the existing universal windows app in HoloLens emulator. if you can run the 超人 

您好 World Apps with the HoloLens Emulators, you can see how an 应用 看起来 as shown below: 

选择 a Debug and 全息镜头 Emulator 10.0.11082.1039 option to run the apps

源代码

您 能够 download 的 source 码 to 这里

结论

I hope you understood the AutoSuggestBox control and run it on multiple devices. I have covered all

的 required things. If you find anything that I missed in this article, please let me know. 

请 share your valuable feedback or suggestions.

 


关于 的 作者
Santhakumar Munuswamy是一位经验丰富的解决方案架构师,并且是Cloud / AI解决方案中最有价值的专家。他在解决方案设计,软件产品开发,技术文档,Web和云应用程序的项目管理方面拥有大约14年的经验。他在不同领域(汽车,电信,医疗保健,物流和仓库自动化等)的IT行业经验丰富,担任过技术架构师,Genesys顾问,技术负责人,团队负责人和开发人员。他在指导和指导高潜力开发人员方面经验丰富。

跟着我: 脸书, 推特, 谷歌加, 领英
博客评论由 领英


月份清单

新sletter

Get notified when a 新 post is published.


社区徽章