Giao diện người dùng (UI) trong Xamarin

Tram Ho

Style trong Xamarin Form là gì và cách sử dụng như thế nào?

Style trong Xamarin Form là gì ?

  • class Style (Xamarin.Forms.Style )
  • Nhóm các thành phần UI chung để sử dụng lại & thay đổi nhanh chóng như: các loại button, các loại text h1, h2 …
  • Style sử dụng : XAML Style hoặc Cascading Style Sheets ( CSS)

Sử dụng Style với XAML Style:

  • Explicit Styles: apply cho 1 đối tượng cụ thể

  • Implicit Styles: Sử dụng để apply chung cho 1 TargetType vd: Button/ Label …

  • Global Styles: Để sử dụng chung cho toàn pages (ResourceDictionary tại App.xaml ), tránh việc lặp đi lặp lại việc tạo style giữa các page , có thể override style tại resource page / resource của từng phần tử.

  • Style Inheritance: Để kế thừa lại từ style khác, mục đích tái sử dụng & ko duplicate. Sử dụng BaseOn:

  • Dynamic Styles: Style sẽ ko thay đổi sau khi được assign. Sử dụng DynamicResource để giải quyết việc này. DynamicResource va StaticResource markup extension là giống nhau, chỉ khác StaticResource là : single dictionary lookup, và DynamicResource tồn lại liên kết đến Dictionary key -> khi dictionary entry đã liên kết với dictionary key bị thay đổi thì nó sẽ thay đổi theo -> UI sẽ được cập nhật. Tiến hành qua 2 bước:

    • Khai báo dynamic style XAML file:

    • Xử lý ở code-behind:

  • Device Styles: X.F chứa 6 loại để hiển thị cho phần Label:

    • BodyStyle
    • CaptionStyle
    • ListItemDetailTextStyle
    • ListItemTextStyle
    • SubtitleStyle
    • TitleStyle

  • Style Classes: để sử dụng nhiều style cho 1 TargetType: vd BoxView có nhiều Style :

Sử dụng Style với CSS:

  • Hiện tại vẫn chưa support full cho CSS.
  • Xem Thêm

Theming và cách sử dụng:

Sử dụng để thay đổi toàn bộ visual ui của 1 ứng dụng, như theme dark / light.

Dùng DynamicResource để change theme:

Cách thực hiện:

  1. Define từng loại theme trong ResourceDictionary
  2. Sử dụng theme trong ứng dụng bằng DynamicResource
  3. Set default theme trong App.xaml file.
  4. Thêm code để thay đổi theme trong runtime.

1. Define Theme:

** Theme Dark **

Theme Light

2. Sử dụng DynamicResource cho các style:

Sử dụng trong App.xaml

Sử dụng trong Content Page

3. Set theme mặc định : App.xml

4. Load theme runtime:

  • Remove theme hiện tại (clear mergedictionary )
  • Load theme đã chọn và thêm vào: MergedDictionaries

demo source (theme)

Xem thêm: https://blog.quilv.com/blog/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo