2017/8/16

Xamarin.Forms 教學系列文(二十三.壹)Triggers - XAML 觸發程式


學習目標
  • Trigger - 屬性觸發
  • EeventTrigger - 事件觸發

當初在 第七章 介紹 XAML 時,XAML 似乎就僅是個建構使用者介面的標籤語法而已,

但到了二十三章,Xamairn 想讓 XAML 做更多 後端能做 的事情,
Triggers Behaviors 就這樣誕生了

Triggers 可以在屬性條件成立時,同時更改其他的屬性值。
Behaviors 則是更開放性的用法,在 Visual Element 內加入更多客製化的功能。

不論是 Triggers 或是 Behavior,都可以寫在 Style 內讓程式能 重複使用

2017/8/7

Xamarin.Forms 教學系列文(二十二)Animation - 物件動畫


學習目標
  • Animation - RotateTo, ScaleTo, Translateto, FadeTo, LayoutTo
  • 第二次點擊失效原因與解法
  • Easing Function - 動畫曲線

Xamarin.Forms 對物件的形狀位置變化,除了像上一章節手動更改物件的屬性,來放大縮小移動位置。

同時也提供了一些簡易的 動畫方法,如漸漸消失,移動到某處,變大,旋轉..

動畫方法目前不支援寫在 XAML,全部都要用 C#

直接看一支簡單的範例:

2017/8/2

Xamarin.Forms LineSpacingLabel - 可調整行距的 Label



剛好有人問,稍微研究一下及做個整理

問題就是:
如何增加 Label 內的文字行距 ( Xamarin.Forms 並沒有提供這屬性啊 ...

但仔細一看,其實 Android 和 iOS 都有提供行距的屬性可以設定... (看來只是 Xamarin.Forms 不想提供給我們用啊...

所以,目前的做法就是自行 客製化 一個附有 行距屬性 的 Label  (客製化教學在後面的章節...

讓我們姑且叫他 LineSpacingLabel

2017/7/29

Xamarin.Forms 教學系列文(二十一)Transforms - 位移 & 放大縮小 & 旋轉


學習目標
  • Translation - 位移
  • Scale - 放大縮小
  • Anchoring - 放大縮小錨定點
  • Rotation - 旋轉
颱風天什麼的在家看原文書打教學最棒了...

顧名思義的,這章節要來介紹 Xamarin.Forms 提供的三種物件變形方式

這三種變形跟以下八個屬性有點關係,型態都是 double:
  • TranslationX
  • TranslationY
  • Scale
  • Rotation
  • RotationX
  • RotationY
  • AnchorX
  • AnchorY

先來介紹 Translation - 位移

2017/7/26

Xamarin.Forms 教學系列文(二十.貳)File I/O



學習目標
  • PCL 實作 FileHelper
  • 檔案的寫入,讀取,刪除

自古以來,檔案存取 是程式最基本的功能,

不過手機取得檔案的方式和桌機有些不一樣,
在桌機上,使用者有權限去存取整個硬碟或瀏覽整個目錄,
在手機上,有幾個基本的資料夾專門拿來放圖片或音樂,甚至應用程式要存取的資料會放在 特定的資料夾 內。

有寫過 .NET 的程式人員一定會知道 System.IO 類別庫,支援檔案的輸入輸出,
其中最好用的就是 File 這個類別,
例如,
要寫入文字時可以直接使用 File.WriteAllText 方法,
或是讀取檔案時可以使用 File.ReadAllText 方法。

為了防止檔案存取去影響到 UI Thread,建議撰寫時都加上 非同步,教學見上一小節

2017/7/24

Xamarin.Forms 教學系列文(二十.壹)async/await 非同步 & DisplayAlert

學習目標
  • 學會非同步寫法... 

圖形使用者介面 (GUI) 有一個特質,執行事件時都是 有順序性 的,每一件事情執行前都要等待另一件事情結束。

一開始,所有程式都會連結到一條執行緒內動作,這條執行緒也稱做 main thread、user-interface threadUI thread

但若 main thread 因為某個大量工作事件卡住,導致介面呈現 假當機 狀態,會讓使用者森氣氣的…

2017/7/19

Xamarin.Forms 教學系列文(十九.參 - 2)TableView - TableSection 隱藏 & Menu



學習目標
  • 整段 Section 隱藏和顯示的方法 
  • Table 也可以當作 Menu 使用!

接續前一小節,我們有個簡單的功能還未完成,
就是開啟 Programmer switch 開關時,才能去點選 Language 和 Platform 這兩個屬性,反之則不能點選。

要完成這個功能,我們要藉由 TableView 本身能放置多組的 TableSection 的特性,並直接隱藏或顯示整組 TableSection

然而...隱藏 TableSection 這件事 無法用 XAML 處理,需借助 C# 才能完成...


接續上一小節的範例,
但我們將 Language 和 Platform 這兩個 PickerCell,移放到一個新的 TableSection 內: