程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Windows 8風格應用開發入門 十三 SearchContract構建

Windows 8風格應用開發入門 十三 SearchContract構建

編輯:關於.NET

如何在應用中構建SearchContract

這裡以常見的構建Search Contract功能為例,具體如下:

設置應用Search權限:

我們在應用中構建SearchContract之前,需要確認應用程序具有相應的Search能力,可以在應用清單文件中查看設置。

添加標准Search Contract頁面:

應用的解決方案中添加Search Contract頁面。

查看Search Contract頁面默認生成的控件模版:

添加SearchResultPage.xaml頁面後,自動會構建出用於頁面顯示搜索信息的控件模版。例如:

相應XAML設計器顯示樣式:

Search Contract頁面對應cs文件LoadState方法中添加進行搜索數據代碼:

SearchResultPage.xaml.cs文件的LoadState方法中根據搜索文本在應用數據中進行搜索,並添加到數據集合中。代碼可如下所示:

更改Search Contract頁面需要綁定的數據模版:

更改解決方案中Common文件夾下StandardStyles.xaml文件的StandardSmallIcon300x70ItemTemplate數據模版,設置該數據模版中我們要顯示的字段控件。例如:

運行應用查看搜索效果:

到這裡我們就可以利用Search Contract進行搜索信息了,並在添加的Search Contract頁面顯示搜索出來的結果。效果如圖:

以上演示的是在應用程序運行的狀態時進行搜索,其實應用程序在關閉狀態下可以通過Search Contract啟動並進行搜索。

應用程序外部啟動:

在App.xaml.cs文件中,需要重寫OnSearchActivated方法來接收系統發送的搜索激活事件。OnSearchActivated方法在兩種情況下進行觸發:Search Contract面板中點擊Search按鈕和點擊列表中某一應用時。

OnSearchActivated方法中編寫應用程序在外部啟動時進行搜索的代碼。代碼如下:

代碼中首先判斷當前應用程序狀態是否為“NotRunning”、“ClosedByUser”、“Terminated”,若為這三種狀態之一,先加載數據、注冊SuggestionRequested(搜索建議)事件、最後激活SearchResultPage頁面。

注意:可以通過設置SearchPane類GetForCurrentView()方法的PlaceholderText屬性值,實現在Search Contract面板輸入框中自定義提示文字,可以告訴用戶可以輸入什麼進行搜索,當輸入文字後提示文字就會自動消失。代碼可如下;

實現效果:

異步搜索建議:

上篇博文提到為了提高用戶體驗,開發者應該必須在用戶輸入搜索信息時提供搜索建議。那麼在應用中如何實現搜索建議呢?

注冊Search Contract面板的搜索建議事件:

OnSuggestionsRequested方法中進行匹配相關的搜索建議。

代碼中AppendQuerySuggestion()方法實現提供搜索建議。

注意:通過AppendQuerySuggestion()可以將一個數組信息全部添加到搜索建議中,但是目前搜索面板中最多顯示5條搜索建議,這一點需要開發者在開發過程中注意到。

實現效果如圖:

我們也可以通過AppendSearchSeparator()方法實現在搜索建議中提供必要的分欄。代碼如下:

實現效果:

另外Search Contract中還提供了一種搜索推薦的形式,通過這個搜索推薦方便用戶直接跳轉到相應信息的詳細頁面。

實現搜索推薦需要借助SearchSuggestionCollection類的AppendResultSuggestion(string text, string detailText, string tag, IRandomAccessStreamReference image, string imageAlternateText)方法來實現。代碼可如下:

代碼中AppendResultSuggestion()方法中參數分別為:

1.text和detaiText分別是搜索建議要顯示的信息;

2.tag是唯一標記,是用戶點擊ResultSuggestion而觸發ReslutionSuggestionChosen事件時,程序收到的信息,從而頁面可以顯示出相應的結果;

3.image是搜索推薦要顯示的圖像;

4.imageAlternateText是image的附加信息,不顯示在搜索面板中;

實現效果:

AppendQuerySuggestion()方法和AppendResultSuggestion()方法主要區別:

1.AppendQuerySuggestion主要告訴用戶搜索信息的建議,AppendResultSuggestion主要告訴用戶可能搜索出來的結果;

2.AppendQuerySuggestion中只包含文本信息,AppendResultSuggestion中包含image、title、detailtitle等信息;

3.AppendResultSuggestion可以讓用戶直接導航到某一條信息的詳細頁面;

本地搜索建議:

設置SearchPane的LocalContentSuggestionSettings,並取消OnSuggestionsRequested事件監聽,可以提供本地文件的搜索建議。其中LocalContentSuggestionSettings類包含了搜索范圍,路徑和文件格式。代碼可如下:

LocalContentSuggestionSettings類方法和屬性可參考MSDN:LocalContentSuggestionSettings class。

注意:要搜索到本地文件,需要在清單文件中開啟對數據的讀取權限。例如:

設置搜索歷史:

長期使用我們應用之後會造成系統歷史記錄會變得非常冗長,可以通過以下代碼關閉歷史記錄:

同時關於搜索歷史還有一個屬性:SearchHistoryContext。

首先我們需要知道一個應用中可以包含多套搜索歷史記錄,通過SearchHistoryContext屬性可以確實使用哪一套歷史記錄。

本文出自 “王祖康” 博客,請務必保留此出處http://wzk89.blog.51cto.com/1660752/1007330

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved