J'écris une application en utilisant Xamarin.Forms, et je veux montrer des icônes dans une page à onglets pour l'application UWP. Pour ce faire, j'essaie d'utiliser un moteur de rendu personnalisé. code équarrisseurs personnalisés estEn utilisant des icônes dans le modèle d'en-tête UWP avec xamarin.froms
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;
}
}
}
et le style de modèle de données est:
<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>
Le problème est que le titre fonctionne très bien, mais les icônes apparaissent jamais, mais ils sont correctement assignés à chaque page Forms.Xaml.
Qu'est-ce que je fais mal?
Votre exemple de convertisseur a fonctionné. Il semble qu'il est impossible d'utiliser le convertisseur d'image Xamarin.Forms standard pour HeaderTemplate. –