【问题标题】:Howto implement a global "Instant search" in a windows 8 metro app?如何在 Windows 8 Metro 应用程序中实现全局“即时搜索”?
【发布时间】:2012-10-02 10:52:47
【问题描述】:

大家好,

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

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

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

如何实现?有例子吗?

【问题讨论】:

    标签: c# windows-8 microsoft-metro


    【解决方案1】:

    【讨论】:

    • 您好,感谢您的回答,但这不是我的问题的答案。我知道这个示例,但它没有展示如何创建即时搜索!
    【解决方案2】:

    你的问题不清楚。通过即时搜索,您的意思是在您键入时显示结果吗?如果这就是您的意思,我建议您查看 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);
            }
        }
    }
    

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

    【讨论】:

    • 您好,感谢您的回答。但这不是解决方案。把事情做好:搜索结果应该显示在按键上,但“不”作为搜索魅力文本框下方的建议!它应该像“App Search”一样工作。结果显示在搜索窗口中...
    • 那样的话,你想要的恐怕是不可能的。搜索魅力由系统处理,而不是您的应用程序。它只是在过程中的特定时间点调用您的应用程序 - 当您键入时,它会请求建议,并在点击 Enter 时启动您的应用程序。恐怕没有办法解决我所知道的问题。
    • 嗨,我目前正在通过手动处理搜索页面和所有其他提供键入搜索的页面上的 Searchpane.QueryChanged 事件来研究解决方案。在 Keypress 上,它将导航到搜索窗口并在服务上执行查询(延迟 1 秒)......如果它在最后工作,我会在这里发布,但感谢您的快速回答......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多