Xamarin.UWP 中的 TextCellRenderer

TextCellRenderer in Xamarin.UWP

我们如何使用 Xamarin.Forms 在 Windows Universal Project 中使用 padding/margin 设置 TextCell 高度?

我尝试在本机项目中关注 Custom renderer

class CustomTextCellRenderer : TextCellRenderer
{
    public override Windows.UI.Xaml.DataTemplate GetTemplate(Cell cell)
    {
        var d = base.GetTemplate(cell);
        //Set something here???
        return d;
    }
}

但找不到要设置的 属性。

有设置 DataTemplate 的依赖性 属性 的功能,但我想不通,设置高度的依赖性 属性 名称是什么?

d.SetValue(???DependencyProperty???, value);

由于 TextCell 是一个内置单元格,因此它经过优化和设计,可以按原样使用。但是,您可以创建一个基于 TextCell 模板的自定义 DataTemplate,然后 return 代替它。

您可以在 Xamarin.Forms source 中找到原始模板。然后在 UWP 平台项目的 App.xaml 中,使用不同的键在 ResourceDictionary 中定义新的 DataTemplate:

<DataTemplate x:Key="MyTextCell">
    <StackPanel Background="Aqua">
        <TextBlock
            Padding="0 10 0 10"
            Margin="5"
            Text="{Binding Text}"
            Style="{ThemeResource BaseTextBlockStyle}" />

        <TextBlock
            Text="{Binding Detail}"
            Style="{ThemeResource BodyTextBlockStyle}"
            x:Name="detail"/>
    </StackPanel>
</DataTemplate>

并在自定义渲染器中访问它:

return App.Current.Resources["MyTextCell"] as Windows.UI.Xaml.DataTemplate;