Comment “cuisiner” une application Windows 8 avec XAML et C# en une semaine–Jour 4– Pour Windows 8 RTM
J’ai mis à jour le code du Jour 4 pour la version RTM de Windows 8.
Rien de bien particulier à signaler, si ce n’est un petit problème dans les DataTemplate et les Styles.
Originellement j’avais inclus les images dans un contrôle bouton au niveau du DataTemplate avec un lien sur un style , mais avec la version RTM, l’évènement click n’est plus levé.
Code Snippet
- <DataTemplate x:Key="UrzaCardsItemsGridViewItemTemplate">
- <ButtonWidth="{Binding Source={StaticResource urzaSettings}, Path=Zoom.Width}"
- Height="{Binding Source={StaticResource urzaSettings},Path=Zoom.Height}"
- Style="{StaticResource UrzaExpansionGridViewStyle}"/>
- </DataTemplate>
je suis donc revenu à une solution plus simple
Code Snippet
- <DataTemplate x:Key="UrzaCardsItemsGridViewItemTemplate">
- <Grid HorizontalAlignment="Left" Width="{Binding Source={StaticResource urzaSettings}, Path=Zoom.Width}"
- Height="{Binding Source={StaticResource urzaSettings},Path=Zoom.Height}">
- <UrzaControl:UrzaImage BitmapSource="{Binding Picture}" VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch"
- >
- </UrzaControl:UrzaImage>
- </Grid>
- </DataTemplate>
Le style étant alors défini, directement dans chaque GridView
Code Snippet
- <GridView
- SelectionChanged="CardsItemsGridView_SelectionChanged"
- x:Name="CardsItemsGridView"
- SelectionMode="Multiple"
- Grid.Row="2"
- Margin="0,-3,0,0"
- Padding="116,0,40,46"
- IsItemClickEnabled="True"
- ItemsSource="{Binding Source={StaticResource groupedCardsItemsViewSource}}"
- ItemClick="cardsItemsGridView_ItemClick"
- ItemContainerStyleSelector="{StaticResource CardsContainerStyleSelector}"
- ItemTemplate="{StaticResource UrzaCardsItemsGridViewItemTemplate}"
- >
- </GridView>
Ici j’utilise pour la vue Expansion un Sélecteur de style à la place d’un sélecteur de DataTemplate.
Code Snippet
- class CardsContainerStyleSelector : StyleSelector
- {
- static Style UrzaCheckedExpansionGridViewStyle = Application.Current.Resources["UrzaCheckedExpansionGridViewStyle"] as Style;
- static Style UrzaExpansionGridViewStyle = Application.Current.Resources["UrzaExpansionGridViewStyle"] as Style;
- protected override Windows.UI.Xaml.Style SelectStyleCore(object item, Windows.UI.Xaml.DependencyObject container)
- {
- var card = item as URZACard;
- return (card.IsChecked == true) ? UrzaCheckedExpansionGridViewStyle : UrzaExpansionGridViewStyle;
- }
- }
Vous retrouverez le code liée à cette article ici :https://aka.ms/isz0ot
Eric
Comments
- Anonymous
December 01, 2013
Bonjour, Je tombe "par hasard" sur cette série d'article qui à mon sens était fort utile. Cependant , au vue de la date du dernier article , je doute de voir un jour la fin de celui ci ? Y'a-t-il une suite quelque part ailleurs ou alors que le "tuto" n'a que peu de chande de voir la fin arrivé ? :D Merci d'avance