我有一个ListView,并且我使用标准的“原生”模板和组。
如何为组表头和项目中的文本设置字体?
发布于 2018-06-20 08:48:53
我已经用这个修复了文本和详细信息标签...
public class MyTextCellRenderer : TextCellRenderer
{
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
if (cell.TextLabel.Font.FamilyName != CommonStyles.RegularFontName)
{
cell.TextLabel.Font = UIFont.FromName(
CommonStyles.RegularFontName, cell.TextLabel.Font.PointSize);
cell.DetailTextLabel.Font = UIFont.FromName(
CommonStyles.RegularFontName, cell.DetailTextLabel.Font.PointSize);
}
return cell;
}
}
对于节标题,这在最初是有效的...
UILabel.AppearanceWhenContainedIn(typeof(UITableView)).Font = ...
当区段标题滚动离开屏幕并重新打开时,它将恢复为标准。
但这行得通..。
public class CustomTableViewRenderer : TableViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.Source = new CustomTableViewModelRenderer(e.NewElement);
}
}
}
public class CustomTableViewModelRenderer : UnEvenTableViewModelRenderer
{
public CustomTableViewModelRenderer(TableView model) : base(model)
{
}
public override void WillDisplayHeaderView(UITableView tableView, UIView headerView, nint section)
{
if (headerView is UITableViewHeaderFooterView view)
{
view.TextLabel.Font = UIFont.FromName(CommonStyles.RegularFontName, 18);
}
}
}
更改某些字体的代码太多了。
发布于 2018-06-20 03:05:08
这是一个在ListHeader
中设置动态LayoutOptions
的例子,像wise一样,你可以为每个标签预先设置这些属性,并自定义你的标题。现在你想要什么,你可以设置自己的字体系列或颜色或字体大小,也可以自定义你的标题单元格,它只是一个ItemTemplate
<ListView x:Name="ListView" IsGroupingEnabled="true">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label
HorizontalOptions="{Binding Optn}"
Text="{Binding Heading}"
VerticalOptions="{Binding Optn}" />
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding DisplayName}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
祝你编码愉快!
https://stackoverflow.com/questions/50933718
复制相似问题