Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

2 février 2014 7 02 /02 /février /2014 01:30
   

combobox.png

1-Remplie avec code behind

Dans la page Xaml on ajoute une comboBox

<ComboBox Name="cboFonts" HorizontalAlignment="Left" Margin="127,89,0,0" VerticalAlignment="Top" Width="300" Height="30" />

 

Code Behind

Ici on trie la collection des FontFamilies

public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

 

            FillFonts();

        }

 

        public void FillFonts()

        {

            ICollection<FontFamily> fonts = Fonts.SystemFontFamilies.OrderBy(x => x.Source).ToList();

 

            foreach (FontFamily font in fonts)

            {

                cboFonts.Items.Add(new TextBlock() { Text = font.Source, FontFamily = font, FontSize = 20 });

            }

            cboFonts.SelectedIndex = 0;

        }

    }

 

Avec une autre methode,on aurait pu trier les elements de la comboBox

            foreach (FontFamily font in Fonts.SystemFontFamilies)

            {

                cboFonts.Items.Add(new TextBlock() { Text = font.Source, FontFamily =font, FontSize = 20 });

            }

 

            cboFonts.Items.SortDescriptions.Add(new SortDescription("Text", ListSortDirection.Ascending));

            cboFonts.SelectedIndex = 0;

 

2 – Remplie avec uniquement le code Xaml

<Window x:Class="WpfFontsDemo.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="350" Width="525"

        xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"

        > 

    <Window.Resources>

        <CollectionViewSource Source="{x:Static Fonts.SystemFontFamilies}" x:Key="cvs">

            <CollectionViewSource.SortDescriptions>

                <scm:SortDescription PropertyName="Source" Direction="Ascending"/>

            </CollectionViewSource.SortDescriptions>

        </CollectionViewSource>

    </Window.Resources>

 

    <Grid>

        <!-- rempli avec le code behind -->

        <ComboBox Name="cboFonts" HorizontalAlignment="Left" Margin="127,89,0,0" VerticalAlignment="Top" Width="300" Height="30" />

 

        <!-- rempli avec le Xaml -->

        <ComboBox x:Name="cboFontsXaml" ItemsSource="{Binding Source={StaticResource cvs}}" HorizontalAlignment="Left" Margin="127,153,0,0" VerticalAlignment="Top" Width="300" Height="30">

            <ComboBox.ItemTemplate>

                <DataTemplate>

                    <TextBlock Text="{Binding Source}" FontFamily="{Binding Source}" FontSize="20"/>

                </DataTemplate>

            </ComboBox.ItemTemplate>

        </ComboBox>

 

    </Grid>

</Window>

 

- On ajoute le Namespace xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"

- On utilise CollectionViewSource

Partager cet article

Repost 0
Published by Romagny13 - dans C
commenter cet article

commentaires