代码中的样式
尽管样式大多是在XAML中定义和使用的,但您应该知道在代码中定义和使用它们时的样子。 这是仅代码的BasicStyleCode项目的页面类。 BasicStyleCodePage类的构造函数使用对象初始化语法来模拟定义Style对象并将其应用于三个按钮时的XAML语法:
-
public class BasicStyleCodePage : ContentPage
-
{
-
public BasicStyleCodePage()
-
{
-
Resources = new ResourceDictionary
-
{
-
{ "buttonStyle", new Style(typeof(Button))
-
{
-
Setters =
-
{
-
new Setter
-
{
-
Property = View.HorizontalOptionsProperty,
-
Value = LayoutOptions.Center
-
},
-
new Setter
-
{
-
Property = View.VerticalOptionsProperty,
-
Value = LayoutOptions.CenterAndExpand
-
},
-
new Setter
-
{
-
Property = Button.BorderWidthProperty,
-
Value = 3
-
},
-
new Setter
-
{
-
Property = Button.TextColorProperty,
-
Value = Color.Red
-
},
-
new Setter
-
{
-
Property = Button.FontSizeProperty,
-
Value = Device.GetNamedSize(NamedSize.Large, typeof(Button))
-
},
-
new Setter
-
{
-
Property = VisualElement.BackgroundColorProperty,
-
Value = Device.OnPlatform(Color.Default,
-
Color.FromRgb(0x40, 0x40, 0x40),
-
Color.Default)
-
},
-
new Setter
-
{
-
Property = Button.BorderColorProperty,
-
Value = Device.OnPlatform(Color.Default,
-
Color.White,
-
Color.Black)
-
}
-
}
-
}
-
}
-
};
-
Content = new StackLayout
-
{
-
Children =
-
{
-
new Button
-
{
-
Text = " Carpe diem ",
-
Style = (Style)Resources["buttonStyle"]
-
},
-
new Button
-
{
-
Text = " Sapere aude ",
-
Style = (Style)Resources["buttonStyle"]
-
},
-
new Button
-
{
-
Text = " Discere faciendo ",
-
Style = (Style)Resources["buttonStyle"]
-
}
-
}
-
};
-
}
-
}
在代码中比在XAML中更明显的是Setter的Property属性是BindableProperty类型。
此示例中的前两个Setter对象使用名为View.HorizontalOptionsProperty和View.VerticalOptionsProperty的BindableProperties对象进行初始化。 您可以使用Button.HorizontalOptionsProperty和Button.VerticalOptionsProperty,因为Button从View继承这些属性。 或者,您可以将类名更改为从View派生的任何其他类。
像往常一样,在代码中使用ResourceDictionary似乎毫无意义。 您可以消除该选项,只需将Style对象直接指定给按钮的Style属性即可。 但是,即使在代码中,Style也是将所有属性设置捆绑到一个紧凑包中的便捷方式。
阅读(2023) | 评论(0) | 转发(0) |