Xamarin.UWP 如何更改 TableView TableSection 中的 TextSize 和 Casing
How to change the TextSize and Casing in TableView TableSection in Xamarin.UWP
我有一个 CustomTableView
控件,它是我用 Xamarin TableView
制作的。我使用自定义渲染器更改 Android 和 iOS 的 TextSize 和 Boldness,代码受此 .
启发
我想为 UWP 做同样的事情,但我不知道如何实现。具体来说,我想使 TableSections 中的文本更大,并使该文本也以大写字母开头。任何有关如何实现此目标的想法都将不胜感激。
How to change the TextSize and Casing in TableView TableSection in Xamarin.UWP
请检查此 code line,Xamarin 将 TextBlock 放置在 TableSection
DataTemplate
中。如果要编辑属性,可以通过将 DataTemplate
添加到 UWP 项目中的 App.Xaml
文件来实现。如果你想编辑FontSize
,你可以使用下面的代码。 (注意FontSize 属性).
<Application.Resources>
<DataTemplate x:Key="TableSectionOne">
<TextBlock
Margin="0,20,0,0"
FontSize="55"
Foreground="{Binding TextColor, Converter={StaticResource ColorConverter}, ConverterParameter=DefaultTextForegroundThemeBrush}"
Style="{ThemeResource SubtitleTextBlockStyle}"
Text="{Binding Title, Converter={StaticResource LowerConverter}}"
Visibility="{Binding Text, RelativeSource={RelativeSource Mode=Self}, Converter={StaticResource CollapseWhenEmpty}}" />
</DataTemplate>
</Application.Resources>
在您的 customTableView 的 UWP 渲染器中,您可以像下面那样手动设置 listview.GroupStyle.FirstOrDefault().HeaderTemplate
。
class CustomTableViewRender : TableViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
{
base.OnElementChanged(e);
if(Control != null)
{
var listview = Control as Windows.UI.Xaml.Controls.ListView;
listview.GroupStyle.FirstOrDefault().HeaderTemplate = (Windows.UI.Xaml.DataTemplate)Windows.UI.Xaml.Application.Current.Resources["TableSectionOne"];
}
}
}
不幸的是,TableSection
不支持继承,所以我们不能为它扩展依赖 属性。
至于Title
的大小写,只需将Text
的Converter={StaticResource LowerConverter}
去掉,将TableView
的大小写为Title
即可到一个带有你喜欢的任何大小写的字符串,它不会被转换为小写。所以它最终看起来像这样:
<Application.Resources>
<DataTemplate x:Key="TableSectionOne">
<TextBlock
Margin="0,20,0,0"
FontSize="55"
Foreground="{Binding TextColor, Converter={StaticResource ColorConverter}, ConverterParameter=DefaultTextForegroundThemeBrush}"
Style="{ThemeResource SubtitleTextBlockStyle}"
Text="{Binding Title}"
Visibility="{Binding Text, RelativeSource={RelativeSource Mode=Self}, Converter={StaticResource CollapseWhenEmpty}}" />
</DataTemplate>
</Application.Resources>
我有一个 CustomTableView
控件,它是我用 Xamarin TableView
制作的。我使用自定义渲染器更改 Android 和 iOS 的 TextSize 和 Boldness,代码受此
我想为 UWP 做同样的事情,但我不知道如何实现。具体来说,我想使 TableSections 中的文本更大,并使该文本也以大写字母开头。任何有关如何实现此目标的想法都将不胜感激。
How to change the TextSize and Casing in TableView TableSection in Xamarin.UWP
请检查此 code line,Xamarin 将 TextBlock 放置在 TableSection
DataTemplate
中。如果要编辑属性,可以通过将 DataTemplate
添加到 UWP 项目中的 App.Xaml
文件来实现。如果你想编辑FontSize
,你可以使用下面的代码。 (注意FontSize 属性).
<Application.Resources>
<DataTemplate x:Key="TableSectionOne">
<TextBlock
Margin="0,20,0,0"
FontSize="55"
Foreground="{Binding TextColor, Converter={StaticResource ColorConverter}, ConverterParameter=DefaultTextForegroundThemeBrush}"
Style="{ThemeResource SubtitleTextBlockStyle}"
Text="{Binding Title, Converter={StaticResource LowerConverter}}"
Visibility="{Binding Text, RelativeSource={RelativeSource Mode=Self}, Converter={StaticResource CollapseWhenEmpty}}" />
</DataTemplate>
</Application.Resources>
在您的 customTableView 的 UWP 渲染器中,您可以像下面那样手动设置 listview.GroupStyle.FirstOrDefault().HeaderTemplate
。
class CustomTableViewRender : TableViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
{
base.OnElementChanged(e);
if(Control != null)
{
var listview = Control as Windows.UI.Xaml.Controls.ListView;
listview.GroupStyle.FirstOrDefault().HeaderTemplate = (Windows.UI.Xaml.DataTemplate)Windows.UI.Xaml.Application.Current.Resources["TableSectionOne"];
}
}
}
不幸的是,TableSection
不支持继承,所以我们不能为它扩展依赖 属性。
至于Title
的大小写,只需将Text
的Converter={StaticResource LowerConverter}
去掉,将TableView
的大小写为Title
即可到一个带有你喜欢的任何大小写的字符串,它不会被转换为小写。所以它最终看起来像这样:
<Application.Resources>
<DataTemplate x:Key="TableSectionOne">
<TextBlock
Margin="0,20,0,0"
FontSize="55"
Foreground="{Binding TextColor, Converter={StaticResource ColorConverter}, ConverterParameter=DefaultTextForegroundThemeBrush}"
Style="{ThemeResource SubtitleTextBlockStyle}"
Text="{Binding Title}"
Visibility="{Binding Text, RelativeSource={RelativeSource Mode=Self}, Converter={StaticResource CollapseWhenEmpty}}" />
</DataTemplate>
</Application.Resources>