Menu

WinRT Posts

ItemTemplate Windows 8

Un petit post pour vous partager un petit soucis que j’ai rencontrer. Je me suis créer des « ProjectTemplates » et « ItemTemplates » pour mes projets MVVM sous Windows 8. Là où la création du « ProjectTemplate » se passe sans soucis, je me suis aperçu que mes « ItemTemplates » ne s’affichais pas quand je faisais « Nouvel élément ».

En fait, Visual Studio 2012 exporte ceci dans son fichier « MyTemplate.vstemplate » :

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
    <TemplateData>
        <DefaultName>ItemView.xaml</DefaultName>
        <Name>Black Windows 8 Empty View</Name>
        <Description>Vue pour être utilisée dans une pattern MVVM Black Blog</Description>
        <ProjectType>CSharp</ProjectType>
        <SortOrder>10</SortOrder>
        <Icon>__TemplateIcon.jpg</Icon>
        <PreviewImage>__PreviewImage.jpg</PreviewImage>
    </TemplateData>
    <TemplateContent>
        <References />
        <ProjectItem SubType="Designer" TargetFileName="$fileinputname$.xaml" ReplaceParameters="true">HomeView.xaml</ProjectItem>
        <ProjectItem SubType="Code" TargetFileName="$fileinputname$.xaml.cs" ReplaceParameters="true">HomeView.xaml.cs</ProjectItem>
    </TemplateContent>
</VSTemplate>

Or avec cette définition, l’ItemTemplate ne s’affiche pas dans ma liste. En cherchant un peu je me suis rendy compte qu’il manquait en fait un élément de définition dans le fichier. Si j’ajoute cette ligne dans le fichier de définition :

<TemplateGroupID>WinRT-Managed</TemplateGroupID>

Mon « ItemTemplate » s’affiche bien, il faut juste le savoir.

Read More

Localisation Dynamique

Une de mes problématiques en ce moment est liée à la localisation de mes applications. En effet, sous Windows Store App, si l’on veut switcher d’une langue à l’autre, il faut soit changer la langue de son OS et relancer l’application (si celle-ci utilise la localisation à partir des ressources) ou alors créer son système custom et tout ça doit être bien intégré dans votre pattern MVVM, or moi je voudrais faire ça à la volé. Bref un vrai casse-tête.

Personnellement j’ai planché un peu sur le problème et j’ai donc trouvé une première solution, certes ce n’est pas spécialement la meilleur ou la plus performante, mais elle offre je pense un bon compromis entre Resources / Binding / MVVM.

Read More

Jouer un son en background (WinRT XAML)

Récemment je me suis confronté à un problème étonnant sur une application WinRT XAML. Je voulais jouer un son mais pas à partir d’une définition dans mon XAML, mais plutôt en code behind.

J’ai donc cherché sur internet comment faire et force est de constater que la seule solution sans aller à créer un interop DirectSound, c’est de passer par le MediaElement. Cependant, passer par ce contrôle n’a pas été aussi simple qu’il n’y parait.

Déjà la première chose à savoir et qu’il m’a fait perdre un temps infini, c’est que le contrôle MediaElement NE GERE PAS LES WAV. Aussi étonnant que cela puisse paraître, il n’arrive pas gérer des WAVs, ou en tout cas ceux que je lui donnais, je les ai pourtant vérifié en les lisant avec différents lecteurs et le fichier n’avait aucun soucis. Dans notre cas il faudra donc passer par des MP3, donc ne vous faite pas avoir !

Read More