none
Modifier la police d'un objet via un ComboBox XAML C# RRS feed

  • Question

  • Bonjours à tous

    J'aimerais que dans une liste déroulante (ComboBox), s'affiche toutes les polices présentes sur mon ordinateur, et, quand je choisis une des polices de ma liste déroulante, la police d'un TextBlock soit modifié en fonction de la police sélectionnée...

    Comme sur le Pack Office.......

    Merci de m'aider

    vendredi 21 février 2014 16:08

Réponses

  • Bonjour,

    Le code XAML :

    <Grid>
        <ComboBox x:Name="comboPoliceSecours" Margin="49,60,264,200">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock FontFamily="{Binding .}" Text="{Binding Source}" />
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    
        <TextBlock Text="Grâce aux forums MSDN-FR j'ai la peau lisse !" FontFamily="{Binding ElementName=comboPoliceSecours, Path=SelectedItem}" Margin="49,151,264,112" />
    </Grid>

    Et au niveau C# il faut juste initialiser les polices dans votre ComboBox :

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
    
            this.comboPoliceSecours.ItemsSource = Fonts.SystemFontFamilies.OrderBy(police => police.Source);
        }
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera lundi 24 février 2014 08:47
    • Marqué comme réponse Aurel Bera vendredi 28 février 2014 08:20
    dimanche 23 février 2014 18:07
    Modérateur

Toutes les réponses

  • Bonjour,

    Le code XAML :

    <Grid>
        <ComboBox x:Name="comboPoliceSecours" Margin="49,60,264,200">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock FontFamily="{Binding .}" Text="{Binding Source}" />
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    
        <TextBlock Text="Grâce aux forums MSDN-FR j'ai la peau lisse !" FontFamily="{Binding ElementName=comboPoliceSecours, Path=SelectedItem}" Margin="49,151,264,112" />
    </Grid>

    Et au niveau C# il faut juste initialiser les polices dans votre ComboBox :

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
    
            this.comboPoliceSecours.ItemsSource = Fonts.SystemFontFamilies.OrderBy(police => police.Source);
        }
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera lundi 24 février 2014 08:47
    • Marqué comme réponse Aurel Bera vendredi 28 février 2014 08:20
    dimanche 23 février 2014 18:07
    Modérateur
  • Bonjour,

    Merci pour tenir la communauté informée sur la suite de vos démarches.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 27 février 2014 08:02