1

你好社区,

我是 Win8-Metro 编程新手,例如 Win8-Store 应用程序(C# 方式),我正在尝试通过搜索合同(http://msdn.microsoft.com/en-us/library/)编写全局即时搜索Windows/应用程序/hh465231.aspx)。

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

在正常情况下,您必须在“搜索结果页面”中实现 LoadState 和 Filer_SelectionChanged 事件。我想要像在“应用程序”中搜索一样的行为(我知道没有搜索历史!)。

这怎么可能实施?有没有例子?

4

2 回答 2

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);
        }
    }
}

当用户开始输入时,此方法会从您的应用程序中返回一个潜在匹配项列表。这些建议将列在“搜索”超级按钮的搜索框下方。

于 2012-10-02T15:25:46.310 回答
0

这是使用搜索合同的示例: http: //code.msdn.microsoft.com/windowsapps/Search-app-contract-sample-118a92f5

于 2012-10-02T11:20:04.180 回答