我经常使用这个元素:
<Label Style="{DynamicResource ListItemTextStyle}"
Text="Front Side"
HorizontalOptions="StartAndExpand" />
有没有办法可以创建一个名为SettingsText的新元素,然后只需要指定
<SettingText Text="Front Side" />
答案 0 :(得分:2)
您可以根据需要创建自定义标签并在此构造函数中设置属性。
您需要创建如下所示的自定义标签:
namespace ProjectName
public class SettingText : Label
{
public SettingText()
{
this.Style = new Style(typeof(Label)){
Setters = {
new Setter {Property = Label.HorizontalOptionsProperty, Value = LayoutOptions.FillAndExpand},
new Setter {Property = Label.VerticalOptionsProperty, Value = LayoutOptions.StartAndExpand}
}
};
this.TextColor = Color.Red;
}
}
在Xaml文件中添加自定义标签的命名空间:
xmlns:local="clr-namespace:ProjectName"
现在您可以在xaml中使用此自定义标签,如:
<local:SettingText Text="Hello" />
答案 1 :(得分:2)
您可以在App.xaml中定义样式:
<Application.Resources>
<ResourceDictionary>
<Style x:Key="CustomStyle" TargetType="Label">
<Setter Property="BackgroundColor" Value="Red" />
<Setter Property="TextColor" Value="Black" />
<Setter Property="HorizontalOptions" Value="StartAndExpand" />
</Style>
<Style x:Key="ListItemTextStyle" TargetType="Label" BasedOn="{StaticResource CustomStyle}"/>
</ResourceDictionary>
</Application.Resources>
然后,创建一个继承自Label的类并使用上面写的样式。当然,您可以直接在SettingText中定义样式。但如果在应用程序中,您可以在应用程序的任何位置使用它。
class SettingText : Label
{
public SettingText()
{
Style = Application.Current.Resources["ListItemTextStyle"] as Style;
}
}
用法:
<local:SettingText Text="123"/>
别忘了添加这个
xmlns:local="clr-namespace:ProjectName"
ListItemTextStyle
是一个Style,用于定义XAML中的标签样式,找到它并在自定义类中写入这些属性。
class SettingText : Label
{
public SettingText()
{
BackgroundColor = Color.Red;
TextColor = Color.Red;
VerticalOptions = LayoutOptions.StartAndExpand;
}
}
或
class SettingText : Label
{
public SettingText()
{
var LabelStyle = new Style(typeof(Label))
{
Setters = {
new Setter {Property = Label.TextColorProperty, Value = Color.Red},
new Setter {Property = Label.BackgroundColorProperty, Value = Color.Red},
new Setter {Property = Label.VerticalOptionsProperty, Value = LayoutOptions.StartAndExpand},
}
};
this.Style = LabelStyle;
}
}