【发布时间】:2018-09-28 09:42:40
【问题描述】:
在我的应用中,我有一个类似于 Windows 应用商店应用的选项卡式布局 (PivotHeaderItem)。与 Windows 应用商店应用程序类似,我已将 Selected 选项卡的文本设置为粗体。 但是,当文本变为粗体时,项目的宽度会变得稍大,导致其他选项卡略有偏移;我想防止这种情况发生。
我正在使用我自己的FormsPivot.HeaderTemplate,它在这里(在我的自定义TabbedPageRenderer 中):
private Windows.UI.Xaml.DataTemplate GetStyledHeaderTemplateDesktop(TabbedPage element)
{
var sb = new StringBuilder();
sb.Append("<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"");
sb.Append(" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">");
sb.Append("<TextBlock Text=\"{Binding Title}\" Padding=\"12 0 12 0\" FontFamily=\"{ThemeResource ContentControlThemeFontFamily}\" FontSize=\"16\" />");
sb.Append("</DataTemplate>");
return (Windows.UI.Xaml.DataTemplate)XamlReader.Load(sb.ToString());
}
至于我是如何将文字设置为粗体的,在我的UWP项目的App.xaml文件中,我为PivotHeaderItem添加了默认样式,然后在VisualState的Storyboard中添加了如下代码为Selected、SelectedPressed 和 SelectedHovered 状态:
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="FontWeight" >
<DiscreteObjectKeyFrame KeyTime="0" Value="SemiBold" />
</ObjectAnimationUsingKeyFrames>
【问题讨论】:
标签: xaml xamarin.forms uwp