首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改ListView项目的字体系列

如何更改ListView项目的字体系列
EN

Stack Overflow用户
提问于 2018-06-20 01:15:12
回答 2查看 1.1K关注 0票数 0

我有一个ListView,并且我使用标准的“原生”模板和组。

如何为组表头和项目中的文本设置字体?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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);
        }
    }
}

更改某些字体的代码太多了。

票数 0
EN

Stack Overflow用户

发布于 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>

祝你编码愉快!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50933718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档