天天看點

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

上一節中我們學習了如何将應用設定儲存到本地,這種方式是通過在app内添加設定選項,這裡還有一種方式。微軟将其稱為“設定”合約,并且所有的windows應用商店應用都将自動配合這種合約。但是應用自帶的這種設定如果不做任何修改可謂毫無作用。而我們添加這些設定則可以讓應用更加個性化哦。

首先建立一個settingsflyout頁面,也許很多童鞋會像我當初學這個一樣立馬就調試程式等着看看這個設定是長什麼樣,不過現在還用不了哦。

如下所示,我們可以修改iconsource來改變”設定“中的圖示。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

然後我将設定界面的布局設定如下咯。

先在app.xaml.cs中添加下面這條命名空間,和以下3個方法

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

當然了,在那些控件中的點選啥的最後都要在背景代碼中添加的,就像上一篇部落格那樣來儲存設定就好啦。

以上就是關于應用設定同樣的内容咯,而應用幫助嘛,和這些都是一樣的呀。建立同樣的目标就好了。然後在xaml中修改成自己喜歡的樣子就好啦。而且和應用設定一樣,我們也可以在底部設定應用欄的,關于應用欄的内容可以檢視第三章的“應用欄”一節。

上一節是關于如何添加應用設定和幫助,這一篇講的是和設定類似的搜尋。

so…… let’s do it !

先從簡單的頁面布局開始,想想我們需要什麼,一個帶搜尋事件的button,還需要一些textblock來提示使用者,核心部分自然是一個gridview咯。

既然界面完成了,就該去背景搗鼓咯。搜尋的核心在于searchpane,是以先來執行個體化它。為了簡化,我們就将待搜尋的内容設定為一串字元串數組好了,當然了,初始化數組的方式大家随意就好了。

當使用者在搜尋框中輸入的内容發生了更改時就會觸發searchpane_querychange事件。

當使用者在完成輸入後按下enter鍵或者點選旁邊的搜尋确認按鈕後就會觸發searchpane_querysubmitted事件。

然後我們還需要這兩個事件在onnavigatedto中綁定以及在onnavigatedfrom中解綁。

然後我們需要點選button控件來調出系統的搜尋框,一行代碼就足以搞定了。如果不想點選按鈕也是可以得哦,可以讓使用者直接在鍵盤輸入而調出搜尋框呢。

最後别忘了将他們都放到mainpage()中哦,

是以說,總的代碼是這樣的。

在清單檔案中聲明你需要使用“search”功能後就可以開始調試咯。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

大家肯定都用的音樂播放器肯定都會在搜尋框下面給出一些建議吧,或者大家常用的地圖等app。

那麼我們就對前面的代碼進行更新就好啦。

下面這段代碼呢,就是根據使用者的輸入來顯示建議清單的方法咯。

這篇部落格,使用大量linq技術,如果不太懂的話可以看看這裡。

【linq技術】擴充特性和linq操作符:http://blog.csdn.net/nomasp/article/details/45461517

使用搜尋建議的最大好處在于我們可以選擇并非自己輸入的内容,這個功能就由下面這段代碼提供動力支援。

我們還可以對前面的searchpane_querysubmitted函數做如下修改。

最後還需要将他們添加到onnavigatedto和onnavigatedfrom方法中。

然後調試就會是這個效果咯。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

記得智能手機剛出來那會比較火的一個概念“能夠複制粘貼的手機就是智能手機”。現在看來,這不過是個老掉牙的功能了,但實際用處卻是非常強大的,那麼現在我們就來試試怎麼做到這個功能。

粘貼闆的英文名叫做clipboard,這也是它的類名了。

建立工程這種就不說了,在xaml中代碼如下:

在背景代碼中寫上這麼一個方法:

standarddataformats是标準資料格式,這裡判斷它是否是text,如果是的話則讓前面的button按鈕可用(之前設為不可用,以灰色顯示)。

标準資料格式有bitmap,html,rtf,storageitems,text,uri等。

然後在按鈕的click事件中寫如下代碼:

這裡我們使用了clipboard類的getcontent()方法,用于在剪切闆中取出datapackageview對象資料;類似的還有setcontent(),用于把資料存入剪切闆中。還有clear事件來清空剪切闆,flush事件把資料從源寫入到剪切闆,并且在應用程式退出後依然保留在剪切闆中。還有contentchanged事件在剪切闆中存儲的資料内容發生變化時自動激活以達到監聽剪切闆内容變化的效果。

大家可以試試,已經完成了,但我們可以做的更多,不是嗎?

完整的代碼如下:

現在它還可以複制圖檔了哦~

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

上一節簡單介紹了通過粘貼闆來共享資料,這一節将會添加更為強大的功能哦。

以下就是大概的樣式了,随便看看就好了,這都不是重點。

這裡通過3個stackpanel的“顯示“與”隐藏“來達到在一個位置顯示3個界面的功能,然後在背景通過以下方法更改visibility屬性。

以下是核心代碼,通過radiobutton的選擇來共享不同的内容。這裡沒有進行try、catch異常檢測,但在實際工程中則是必要的,因為如果你不共享任何内容而點選共享按鈕你就知道了……

選擇檔案的方法我們在前面也都介紹過了,直接貼代碼……

當然了,記得下面這些操作……

最後就是共享确認按鈕了,一行代碼搞定。

以上這個app,你将需要共享的資料從這裡發出,也叫共享源,但共享到哪裡了呢?

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

看到”共享圖像“和”共享以下圖檔“想起來剛才的兩行代碼了麼?這兩個屬性就用在了這裡。

我們當然可以将資料共享到郵件、onenote裡,但如果你是要寫一個自己的接收共享資料的應用呢,如何來寫?

接下來就來寫另一個app咯,也就是上圖中的app49了。首先在清單檔案中做如下操作,當然了,具體要添加哪些東西大家自己看着辦就好了。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

然後添加一個xaml頁面來接收資料,因為你不可能隻讓你的app專門用來接收資料咯,是以就不建議在mainpage中寫了。

在新頁面中大概做一下頁面布局,我的布局通常來說都不是很美觀的……

背景代碼中寫以下代碼,核心在于if中的3個判斷,就是3中共享的檔案了咯。

接着我們就要來調試這兩個程式啦。隻需要将接受共享資料的app按f5運作後關掉就好了,因為它會部署到本地的,或者也可以在build頁籤中直接部署也是一樣的。然後按f5運作共享資料的資料源app就好啦。

截圖如下:

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

這張圖檔我壓縮過了,不如太大上傳不了,是以可能看不清楚吧。下面是共享文本資料的過程截圖啦。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

這個是共享圖像的截圖,忘了說了,在前面的spaceneedle1.jpg就是下面這張圖檔我已經事先添加到工程裡了的。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

緊接着我們共享這個docx檔案,卻發現在共享欄裡沒有了app49,發生了什麼?

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)
Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

下面這首剛才添加的受支援的檔案類型,明顯沒有添加.docx,是以這也是一個需要注意的地方。

Windows App開發之內建設定、幫助、搜尋和共享應用設定和應用幫助在應用中內建搜尋使用粘貼闆設定共享(共享源和共享目标)

而想知道如何算出10000的階層可以看“100的階層真的算不出來嗎?” :http://blog.csdn.net/nomasp/article/details/45484979

繼續閱讀