如何在 Xamarin C# 中更改 Font/Color/Size
How to change Font/Color/Size in Xamarin C#
我正在用 C#/Xamarin 制作混合应用程序,我想为所有应用程序制作自定义菜单(iOS、Android、Windows Phone).
所以,我创建了一个 MasterPage
作为我的菜单。
public MasterPage()
{
InitializeComponent();
var masterPageItems = new List<MenuItem>();
masterPageItems.Add(new MenuItem
{
Title = "Administração",
});
masterPageItems.Add(new MenuItem
{
Title = "Meus Dados",
IconSource = "contacts.png",
TargetType = typeof(MeusDados),
});
masterPageItems.Add(new MenuItem
{
Title = "Dados Cadastrais",
IconSource = "contacts.png",
TargetType = typeof(MeusNegocios),
});
var listView = new ListView
{
ItemsSource = masterPageItems,
ItemTemplate = new DataTemplate(() =>
{
var imageCell = new ImageCell();
imageCell.SetBinding(TextCell.TextProperty, "Title");
imageCell.SetBinding(ImageCell.ImageSourceProperty, "IconSource");
return imageCell;
}),
VerticalOptions = LayoutOptions.FillAndExpand,
SeparatorVisibility = SeparatorVisibility.None
};
Padding = new Thickness(0, 20, 0, 0);
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Fill,
Children = {
listView
}
};
}
这是MenuItem
:
public class MenuItem
{
public string Title { get; set; }
public string IconSource { get; set; }
public Type TargetType { get; set; }
public string Parameter { get; set; }
}
所以现在我想在 C# 中更改内容页面的大小、字体、字体颜色、字体大小。我应该怎么做?
关于字体的 Xamarin Forms 文档:
字体:https://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/
示例:
var about = new Label {
FontSize = Device.GetNamedSize (NamedSize.Medium, typeof(Label)),
FontAttributes = FontAttributes.Bold,
Text = "Medium Bold Font"
};
我注意到您使用的是 ImageCell,它没有 Font 属性,只有 TextColor 和 DetailColor 属性。此外,在 ImageCell 中没有获取底层标签的属性,因此如果您想要完全自定义,最好的选择是创建您自己的 ViewCell 并将图像和标签添加到 ViewCell。然后,您可以使用 Font 属性设置 Labels 的样式。
或者,您可以使用预览版中的主题:https://developer.xamarin.com/guides/xamarin-forms/themes/
StyleClass
The StyleClass property allows a view's appearance to be changed according to a definition provided by a theme.
我正在用 C#/Xamarin 制作混合应用程序,我想为所有应用程序制作自定义菜单(iOS、Android、Windows Phone).
所以,我创建了一个 MasterPage
作为我的菜单。
public MasterPage()
{
InitializeComponent();
var masterPageItems = new List<MenuItem>();
masterPageItems.Add(new MenuItem
{
Title = "Administração",
});
masterPageItems.Add(new MenuItem
{
Title = "Meus Dados",
IconSource = "contacts.png",
TargetType = typeof(MeusDados),
});
masterPageItems.Add(new MenuItem
{
Title = "Dados Cadastrais",
IconSource = "contacts.png",
TargetType = typeof(MeusNegocios),
});
var listView = new ListView
{
ItemsSource = masterPageItems,
ItemTemplate = new DataTemplate(() =>
{
var imageCell = new ImageCell();
imageCell.SetBinding(TextCell.TextProperty, "Title");
imageCell.SetBinding(ImageCell.ImageSourceProperty, "IconSource");
return imageCell;
}),
VerticalOptions = LayoutOptions.FillAndExpand,
SeparatorVisibility = SeparatorVisibility.None
};
Padding = new Thickness(0, 20, 0, 0);
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Fill,
Children = {
listView
}
};
}
这是MenuItem
:
public class MenuItem
{
public string Title { get; set; }
public string IconSource { get; set; }
public Type TargetType { get; set; }
public string Parameter { get; set; }
}
所以现在我想在 C# 中更改内容页面的大小、字体、字体颜色、字体大小。我应该怎么做?
关于字体的 Xamarin Forms 文档: 字体:https://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/
示例:
var about = new Label {
FontSize = Device.GetNamedSize (NamedSize.Medium, typeof(Label)),
FontAttributes = FontAttributes.Bold,
Text = "Medium Bold Font"
};
我注意到您使用的是 ImageCell,它没有 Font 属性,只有 TextColor 和 DetailColor 属性。此外,在 ImageCell 中没有获取底层标签的属性,因此如果您想要完全自定义,最好的选择是创建您自己的 ViewCell 并将图像和标签添加到 ViewCell。然后,您可以使用 Font 属性设置 Labels 的样式。
或者,您可以使用预览版中的主题:https://developer.xamarin.com/guides/xamarin-forms/themes/
StyleClass The StyleClass property allows a view's appearance to be changed according to a definition provided by a theme.