Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6642654
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2018-08-08 21:52:59

代码中的样式

尽管样式大多是在XAML中定义和使用的,但您应该知道在代码中定义和使用它们时的样子。 这是仅代码的BasicStyleCode项目的页面类。 BasicStyleCodePage类的构造函数使用对象初始化语法来模拟定义Style对象并将其应用于三个按钮时的XAML语法:


点击(此处)折叠或打开

  1. public class BasicStyleCodePage : ContentPage
  2. {
  3.     public BasicStyleCodePage()
  4.     {
  5.         Resources = new ResourceDictionary
  6.         {
  7.             { "buttonStyle", new Style(typeof(Button))
  8.                 {
  9.                     Setters =
  10.                     {
  11.                         new Setter
  12.                         {
  13.                             Property = View.HorizontalOptionsProperty,
  14.                             Value = LayoutOptions.Center
  15.                         },
  16.                         new Setter
  17.                         {
  18.                             Property = View.VerticalOptionsProperty,
  19.                             Value = LayoutOptions.CenterAndExpand
  20.                         },
  21.                         new Setter
  22.                         {
  23.                             Property = Button.BorderWidthProperty,
  24.                             Value = 3
  25.                         },
  26.                         new Setter
  27.                         {
  28.                             Property = Button.TextColorProperty,
  29.                             Value = Color.Red
  30.                         },
  31.                         new Setter
  32.                         {
  33.                             Property = Button.FontSizeProperty,
  34.                             Value = Device.GetNamedSize(NamedSize.Large, typeof(Button))
  35.                         },
  36.                         new Setter
  37.                         {
  38.                             Property = VisualElement.BackgroundColorProperty,
  39.                             Value = Device.OnPlatform(Color.Default,
  40.                                                       Color.FromRgb(0x40, 0x40, 0x40),
  41.                                                       Color.Default)
  42.                         },
  43.                         new Setter
  44.                         {
  45.                             Property = Button.BorderColorProperty,
  46.                             Value = Device.OnPlatform(Color.Default,
  47.                                                       Color.White,
  48.                                                       Color.Black)
  49.                         }
  50.                     }
  51.                 }
  52.             }
  53.         };
  54.         Content = new StackLayout
  55.         {
  56.             Children =
  57.             {
  58.                 new Button
  59.                 {
  60.                     Text = " Carpe diem ",
  61.                     Style = (Style)Resources["buttonStyle"]
  62.                 },
  63.                 new Button
  64.                 {
  65.                     Text = " Sapere aude ",
  66.                     Style = (Style)Resources["buttonStyle"]
  67.                 },
  68.                 new Button
  69.                 {
  70.                     Text = " Discere faciendo ",
  71.                     Style = (Style)Resources["buttonStyle"]
  72.                 }
  73.             }
  74.         };
  75.     }
  76. }

在代码中比在XAML中更明显的是Setter的Property属性是BindableProperty类型。
此示例中的前两个Setter对象使用名为View.HorizontalOptionsProperty和View.VerticalOptionsProperty的BindableProperties对象进行初始化。 您可以使用Button.HorizontalOptionsProperty和Button.VerticalOptionsProperty,因为Button从View继承这些属性。 或者,您可以将类名更改为从View派生的任何其他类。
像往常一样,在代码中使用ResourceDictionary似乎毫无意义。 您可以消除该选项,只需将Style对象直接指定给按钮的Style属性即可。 但是,即使在代码中,Style也是将所有属性设置捆绑到一个紧凑包中的便捷方式。
阅读(2023) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~