如何在Windows 8 metro应用程序中实现全局“即时搜索”?

时间:2012-10-02 10:52:48

标签: c# windows-8 microsoft-metro

Hello Community,

我是编程Win8-Metro的新手,例如Win8-Store应用程序(C#Way),我正在尝试通过搜索合同编程全球即时搜索(http://msdn.microsoft.com/en-us/library/windows/apps/hh465231.aspx)。< / p>

像我想要实现的即时搜索,就像搜索“应用程序”/“应用程序搜索”一样。每个键盘输入都会在搜索窗口中显示新找到的应用程序(搜索超级按钮文本框下方没有建议),而无需按Enter键。

在正常情况下,您必须在“搜索结果页面”中实现LoadState和Filer_SelectionChanged事件。我希望在“应用”中搜索相同的行为(我知道没有搜索记录!)。

怎么可以实施?有没有例子?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你的问题不明确。通过即时搜索,您的意思是在您键入时显示结果吗?如果这就是您的意思,我建议您查看OnSuggestionsRequested事件。

例如......

private void OnSuggestionsRequested(SearchPane sender, SearchPaneSuggestionsRequestedEventArgs args)
{
    string query = args.QueryText;
    string[] terms = { "an item", "Oscillator", "crossbeam", "treddle", "Interossitor", "Spline", "Flange" };

    foreach (var term in terms)
    {
        if (term.StartsWith(query, StringComparison.CurrentCultureIgnoreCase))
        {
            args.Request.SearchSuggestionCollection.AppendQuerySuggestion(term);
        }
    }
}

当用户开始输入时,此方法会为您返回应用中可能匹配的列表。这些建议将列在搜索超级按钮的搜索框下方。