我正在使用 Xamarin.Forms 编写应用程序,并且我想在 UWP 应用程序的选项卡式页面中显示图标。为了实现这一点,我正在尝试使用自定义渲染器。自定义渲染器代码是
class TabbedPageWithIconsRenderer : TabbedPageRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null && Control != null)
{
Control.HeaderTemplate = App.Current.Resources["TabHeaderTemplate"] as DataTemplate;
}
}
}
数据模板样式为:
<forms:ImageConverter x:Key="imageConverter" />
<DataTemplate x:Key="TabHeaderTemplate">
<StackPanel >
<Image
HorizontalAlignment="Center"
Margin="0,12,0,0"
Height="24"
Width="24"
Source="{Binding Icon, Converter={StaticResource imageConverter}}" />
<TextBlock
FontFamily="Segoe UI"
Text="{Binding Title}"
Style="{StaticResource CaptionTextBlockStyle}"
LineStackingStrategy="BlockLineHeight"
LineHeight="14"
MaxLines="2"
IsTextScaleFactorEnabled="False"
TextAlignment="Center"
HorizontalAlignment="Center"
Margin="2,5,2,7" />
</StackPanel>
</DataTemplate>
问题是标题工作正常,但图标从不出现,但是它们被正确分配给 Forms.Xaml 中的每个页面。
我做错了什么?