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;
我们如何使用 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;