Vue d'ensemble des applications Windows Presentation Foundation hébergées par Windows Media Center
Mise à jour : novembre 2007
Microsoft Windows Media Center (WMC) est une application numérique multimédia de divertissement installée avec Windows Vista Édition familiale Premium, Windows Vista Édition Intégrale et Microsoft Windows XP Édition Media Center 2005. WMC autorise aux utilisateurs à gérer et utiliser une large gamme de médias, y compris la télévision (numérique et haute définition), les DVD, la musique, la vidéo, la radio et les photos.
Une fois installé, un WMCordinateur personnel (PC) peut être utilisé pour afficher et jouer du multimédia numérique. Cela s'appelle l'expérience utilisateur rapprochée, car les utilisateurs font fonctionner WMC sur le PC, en utilisant la souris, le clavier et l'écran.
Toutefois, un WMCPC peut être configuré pour prendre en charge le contrôle à distance ou l'entrée au clavier distante. Dans cette disposition, les utilisateurs ne doivent pas se situer sur le PCWMC pour le faire fonctionner. Cela s'appelle l'expérience utilisateur éloignée et s'adapte aux configurations WMC qui incluent des écrans larges, ainsi que le matériel domestique de divertissement traditionnel, comme la télévision et le système audio.
La fonctionnalité principale offerte par WMC est composée d'un jeu d'applications pour gérer et jouer du multimédia numérique. Toutefois, vous pouvez utiliser WPF pour créer vos propres applications personnalisées pour les versions Windows Vista de WMC.
Cette rubrique fournit une introduction au développement d'applications WPF pour WMC et aborde les éléments suivants :
Génération et déploiement d'une application de jeu WPF simple.
Ciblage des deux expériences utilisateur WMC rapprochée et éloignée.
Personnalisation de contrôles WPF pour prendre en charge WMC.
Utilisation de nouveaux contrôles spécifiques à WMC pour WPF.
Tirer parti de la prise en charge dans le .NET Framework.
Intégration avec WMC à travers des API gérés.
Utilisation de Visual Studio 2005 pour améliorer le processus de développement.
Pour des informations complètes sur le développement d'applications pour WMC, consultez le Kit de développement logiciel (SDK) Windows Media Center (SDK WMC).
Cette rubrique comprend les sections suivantes.
- Hébergement d'applications WPF dans WMC
- Lancement d'une application WPF pour WMC
- L'expérience utilisateur WMC
- Mise à jour de contrôles WPF pour WMC
- Contrôles WPF supplémentaires pour WMC
- Utilisation des bibliothèques de classes .NET Framework 3.0
- Intégration avec les API gérées WMC
- Développement avec Visual Studio
- Installation d'une application WPF pour WMC
- Rubriques connexes
Hébergement d'applications WPF dans WMC
WPF autorise le développement de deux types d'applications : autonome et hébergée par navigateur. Les applications autonomes fournissent leurs propres fenêtres et boîtes de dialogue pour héberger le contenu d'application. Il y a deux types d'applications hébergées par le navigateur, les applications XAML libres et XBAP, les deux étant hébergées par Internet Explorer 7. Toutefois, Internet Explorer 7 ne sait rien à propos de WPF; pour que Internet Explorer 7 ait la possibilité d'héberger le contenu WPF, WPF fournit des applications comme Internet Explorer, un proxy d'hébergement. Ce proxy peut héberger le contenu WPF de la part d'autres applications et est construit à l'aide de la même infrastructure Windows commune que Internet Explorer lui-même sait comment héberger.
WMC est également capable d'héberger ce proxy et, par conséquent, peut héberger des WPF applications hébergées par le navigateur. Cela signifie que vous pouvez tirer parti de la plateforme de développement d'applications WPF, en général, et des fonctionnalités de sécurité et de navigation d'applications hébergées par le navigateur, en particulier.
Le reste de cette rubrique utilise l'application WordGame! pour WMC (voir WordGame! pour Windows Media Center, démonstration).
Lancement d'une application WPF pour WMC
L'application WordGame! se compose des trois fichiers suivants (le minimum pour tous les XBAP) :
wordgamewmc.exe. XBAP.
wordgamewmc.exe.manifest. Le manifeste d'application ClickOnce.
wordgamewmc.xbap. Le manifeste de déploiement ClickOnce.
Les XBAP sont lancés à l'aide de ClickOnce, qui requiert que l'application soit configurée avec les fichiers de manifeste de déploiement et d'application (voir Génération d'une application WPF (WPF)). En particulier, un XBAP est lancé lorsque son fichier .xbap est recherché ou activé. En cas de lancement, le comportement par défaut de ClickOnce consiste à télécharger l'application de la part de WPF, après quoi WPF lance Internet Explorer pour qu'il accède à l'application, comme affiché dans l'illustration suivante :
Pour lancer une application WMC cependant, les utilisateurs recherchent ou double-cliquent sur un fichier de liaison WMC (.mcl). Un fichier .mcl est un fichier de configuration XML configuré dans Windows pour être ouvert par l'hôte WMC, (ehshell.exe) lorsqu'il est recherché ou ouvert par double clic (voir SDK WMC).
Remarque : |
---|
.Les fichiers .mcl sont pratiques pendant le processus de développement, mais ne sont pas recommandés comme mécanisme pour installer et lancer des applications WMC. Consultez installer une application WPF pour WMC. |
Lorsqu'un fichier .mcl s'ouvre, l'hôte WMC analyse et traite les instructions de configuration contenues par le fichier .mcl, le plus important étant le nom de l'application à ouvrir. Vous utilisez ce mécanisme pour créer un fichier .mcl configuré pour lancer un XBAP :
<application url="https://localhost/wordgamewmc/wordgamewmc.xbap" />
Lorsque l'hôte WMC traite ce fichier .mcl, l'hôte WMC navigue jusqu'au fichier .xbap. Cela entraîne ClickOnce à lancer l'application dans l'hôte WMC lui-même, comme affiché dans l'illustration suivante :
Remarque : |
---|
Si vous souhaitez que WMC héberge une application XAML libre, vous devez configurer le fichier .mcl avec un fichier .xaml, comme suit : |
<application
url="https://localhost/loosexamlapplication/loosexamlpage.xaml" />
Sans aucune modification au XBAP même, et en ajoutant un fichier de configuration unique, une application WPF hébergée par le navigateur peut être hébergée par WMC, tel quel.
Toutefois, l'expérience utilisateur WMC est assez spécifique et, pour des raisons de cohérence et de style, les applications XBAPWMC doivent être conçues pour s'intégrer avec l'expérience utilisateur WMC. Le reste de cette rubrique couvre les aspects clés de l'expérience utilisateur WMC et comment générer XBAP pour y être sensible.
L'expérience utilisateur WMC
Fournir une expérience utilisateur cohérente est une partie principale de tout développement d'applications. En ce qui concerne les utilisateurs WMC, une application doit essayer d'être cohérente des manières suivantes :
Thème. Le style général de l'interface utilisateur d'une application.
Disposition. Positionnement et taille du contrôle.
Navigation. En utilisant le clavier, la souris et la télécommande pour naviguer sur l'interface utilisateur d'une application.
Alors qu'une discussion détaillée sur l'expérience utilisateur WMC se trouve dans le SDK WMC, les rubriques suivantes fournissent une vue d'ensemble générale.
Thème
Comme vous pouvez le voir sur l'illustration suivante, le thème WMC a plusieurs éléments distincts :
Le plus distinct inclue un bleu, d'arrière-plan vitreux aux grandes polices arrondies de couleur claire. Le résultat est de créer une apparence qui peut être discernée facilement par les utilisateurs rapprochés, qui sont juste devant l'écran, les utilisateurs éloignés qui peuvent se trouver à n'importe quelle distance d'une télévision. Pendant que les applications WPF doivent suivre cette approche générale à l'apparence, WMC n'expose pas en mode natif cette information pour les applications WPF à utiliser. Heureusement, WPF fournit une infrastructure enrichie pour les styles et les thèmes qui peuvent être récupérés pour répliquer facilement l'apparence WMC, si cela est souhaité. Vous pouvez également utiliser WPF pour créer une toute nouvelle expérience utilisateur enrichie visuellement, sans oublier de tenir compte des considérations sur la disposition et la navigation.
Par exemple, pour créer un arrière-plan de style WMC pour les pages, vous pourriez effectuer les opérations suivantes :
<Application
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="HomePage.xaml">
<!--MediaCenterThemes.xaml-->
<Application.Resources>
<LinearGradientBrush x:Key="PageGlassyBackground" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#ff2B6680" Offset="1.5" />
<GradientStop Color="#569dc2" Offset="0" />
</LinearGradientBrush>
...
</Application.Resources>
</Application>
Comme les thèmes sont composés en général de plusieurs éléments, vous devez envisager d'utiliser un dictionnaire de ressources personnalisé pour encapsuler les styles du thème WMC :
<ResourceDictionary>
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" />
<LinearGradientBrush x:Key="PageGlassyBackground" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#ff2B6680" Offset="1.5" />
<GradientStop Color="#569dc2" Offset="0" />
</LinearGradientBrush>
...
</ResourceDictionary>
Pour incorporer un dictionnaire de ressources dans une application, vous configurez l'élément Application.Resources de votre définition d'application pour faire référence au fichier de dictionnaire de ressources .xaml :
<Application
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
StartupUri="HomePage.xaml">
<!--MediaCenterThemes.xaml-->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MediaCenterTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
L'illustration suivante affiche WordGame! mis à jour avec un complément complet de styles et de ressources pour le thème WMC.
WMC ne vous restreint pas à développer des thèmes d'application qui incorporent des éléments spécifiques à l'application et spécifiques à la marque. Toutefois, plusieurs aspects du thème d'une application doivent être considérés lors de la conception de toute application pour l'expérience utilisateur WMC, y compris :
Couleurs de sécurité de télévision : n'utilisez pas de couleurs claires qui sont susceptibles de saigner (eg, vert, rouge).
Contraste : pour garder le texte visuellement distinct de l'arrière-plan, assurez-vous que le choix des couleurs de premier plan et d'arrière-plan pour vos éléments visuels ont un niveau de contraste approprié.
Polices : vous pouvez améliorer la lisibilité en utilisant de plus grandes tailles de polices sans empattements. En outre, la suppression de libellé inutile de votre contenu peut aider à créer des zones de texte plus faciles à lire.
Boutons : gardez une apparence simple pour vos boutons.
Images : lors de la création d'images, considérez la qualité et la taille d'affichage et la taille de téléchargement.
Animation : utilisez une animation lorsque cela s'avère nécessaire.
Consultez le SDK WMC pour les informations détaillées concernant des thèmes d'application WMC.
Disposition
Un problème qui n'est pas facilement visible se produit lorsqu'un utilisateur pointe la souris sur l'hôte WMC, ce qui provoque l'hôte WMC à afficher des éléments de navigation d'interface utilisateur supplémentaires pour la navigation commandée par la souris, comme cela est montré dans l'illustration suivante :
À partir de cette illustration, vous pouvez voir que les portions supérieure gauche et inférieure droite de l'interface utilisateur de l'application sont couvertes par le chrome de navigation. Dans cette situation, vous pouvez mettre à jour la disposition de votre interface utilisateur pour prendre en compte l'interface utilisateur de navigation. Pour WordGame!, cela implique de déplacer le titre de l'application sur la droite de l'interface utilisateur, et d'ajouter une ligne de 50 pixels de haut en bas de l'élément Grid qui héberge le contenu sur la page d'accueil :
<Grid>
...
<Grid.RowDefinitions>
<RowDefinition Height="5" />
<RowDefinition Height="Auto" />
<RowDefinition Height="20" />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<!-- Game title -->
<TextBlock ... TextAlignment="Right">Word Game!</TextBlock>
...
</Grid>
L'effet de l'ajout de ces lignes est affiché dans l'illustration suivante :
Pour cette raison, les XBAP pour WMC doivent être sensibles aux divers comportements et cohérences de disposition de WMC.
Les considérations de disposition clés que vous devez faire incluent :
Disposition d'application : la disposition de vos applications doit être simple et cohérente, afin que les utilisateurs se familiarisent et retiennent plus facilement l'interface utilisateur de votre application.
Disposition WMC : la disposition de vos applications doit de préférence rester cohérente avec l'expérience utilisateur WMC générale. Cela permet aux utilisateurs familiarisés avec WMC d'appréhender plus facilement et plus rapidement votre application.
Vidéo : si votre application affiche la vidéo à l'aide des APIWMC gérés, WMC jouera la vidéo dans la partie inférieure gauche de l'écran. Par conséquent, votre interface utilisateur doit être disposée pour prendre ceci en considération.
Résolution : l'interface utilisateur et la disposition de votre application doivent cibler une résolution de 1024x768. WPF offre un support de disposition pour vous aider à disposer votre interface utilisateur en 1024x768 et garantir que la disposition est conservée quand l'interface utilisateur est redimensionnée (voir Système de disposition pour plus d'informations).
Consultez le SDK WMC pour les informations détaillées concernant la disposition WMC.
Navigation
Généralement, thème et disposition dictent la manière dont les contrôles qui comprennent l'interface utilisateur de votre application sont organisés. La navigation, en revanche, dicte comment vos utilisateurs accèdent et se déplacent entre ces contrôles.
Le contrôle qui reçoit actuellement l'entrée d'utilisateur est considéré comme ayant le focus. Pour placer le focus sur un contrôle spécifique lorsqu'une page dans votre application XBAP est affichée, vous pouvez utiliser la balise :
<!-- Set focus on guess character text box -->
<Page ... FocusManager.FocusedElement="{Binding ElementName=guessedChar}">
...
</Page>
Vous devez opérer ainsi pour prendre en charge à la fois les modes d'opération rapprochée et éloignée.
Pour permettre aux utilisateurs de naviguer vos contrôles dans une application WMC dans les deux modes rapproché et éloigné, votre application doit gérer la navigation à l'aide d'une souris, d'un clavier (filaire ou distant) et d'une télécommande. Par défaut, la navigation avec une souris et un clavier est identique à celle de toute application WPF, y compris :
Clic sur les contrôles pour déplacer le focus dessus.
Tabulation à travers les contrôles pour déplacer le focus.
Utilisation de la propriété IsDefault d'un bouton pour indiquer qu'il est activé par défaut en cas d'appui sur la touche Entrée.
Utilisation de la propriété IsCancel d'un bouton pour indiquer qu'il est activé par défaut en cas d'appui sur la touche ÉCHAP.
Pour prendre en charge les télécommandes, vous devez prendre en charge la navigation directionnelle, ce qui permet aux utilisateurs de déplacer le focus du contrôle en cliquant sur les boutons haut, bas, gauche et droite de la télécommande. Il n'est pas nécessaire d'écrire un code spécial pour prendre en charge la navigation directionnelle, tant que vous utilisez un sous-ensemble spécifique de contrôles WPF.
Mise à jour de contrôles WPF pour WMC
Bien que WPF offre un hébergement de contrôles, seul un sous-ensemble de ces contrôles est approprié pour une utilisation par défaut dans les applications WMC. Le facteur déterminant est de savoir s'il est possible d'y accéder, de les manipuler ou de naviguer dessus à l'aide d'une télécommande. L'illustration suivante montre un sous-ensemble de contrôles WPF qui prennent en charge l'entrée d'une télécommande (en utilisant des styles WMC ) :
Ces limitations n'empêchent pas l'utilisation d'autres contrôles WPF, bien que vous devrez exécuter un travail supplémentaire pour les faire fonctionner pour WMC. Par exemple, considérez le contrôle Slider, montré hébergé dans WMC dans l'illustration suivante :
Par défaut, un Slider peut être affiché et accédé pour la navigation à l'aide de la souris, du clavier ou de la télécommande. Toutefois, un Slider ne peut pas être accédé en utilisant la télécommande - Slider interprète les clics sur les boutons haut, bas, gauche et droite de la télécommande comme des tentatives d'augmentation ou de réduction de la valeur du Slider.
Dans ces situations, une solution est de créer un contrôle composite qui contient les contrôle souhaité plus des contrôles conviviaux de télécommande supplémentaires pour le manipuler. Par exemple, le Slider peut encore être utilisé avec deux boutons, un pour décrémenter la valeur du Slider et un pour incrémenter la valeur du Slider, à l'aide du code suivant :
<Page x:Class="SliderPage"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<!-- Custom Slider -->
<StackPanel Margin="50" Orientation="Horizontal" VerticalAlignment="Top">
<Button
Name="decrementButton"
Click="decrementButton_Click"
Margin="10"
FontSize="10"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Width="40" Height="40">
-
</Button>
<Slider
Name="slider"
Focusable="False"
Width="100" Margin="0,15,0,0"
Minimum="0" Maximum="10" Value="50"
Interval="1" TickFrequency="1" TickPlacement="BottomRight" />
<Button
Name="incrementButton"
Click="incrementButton_Click"
Margin="10"
FontSize="10"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Width="40" Height="40">
+
</Button>
</StackPanel>
</Page>
using System.Windows;
using System.Windows.Controls;
public partial class SliderPage : System.Windows.Controls.Page
{
//</SnippetSliderPageCodeBehind1>
public SliderPage()
{
InitializeComponent();
}
void decrementButton_Click(object sender, RoutedEventArgs e)
{
this.slider.Value--;
}
void incrementButton_Click(object sender, RoutedEventArgs e)
{
this.slider.Value++;
}
}
Le résultat est affiché dans l'illustration suivante.
Contrôles WPF supplémentaires pour WMC
Un autre contrôle problématique est le TextBox, affiché dans l'illustration suivante. À l'aide d'une télécommande, il n'est pas possible d'introduire réellement des caractères dans le TextBox. La solution utile, c'est un contrôle qui permet à un utilisateur de télécommande de sélectionner un ou plusieurs caractères. Une technique courante déjà utilisée dans les appareils mobiles, dont le facteur de forme les empêche d'avoir un clavier complet, est d'afficher un clavier dans l'interface utilisateur et de permettre de sélectionner les caractères souhaités.
L'exemple inclut un contrôle de clavier logiciel pour les applications WPF ciblant WMC, affiché dans l'illustration suivante :
Cela est implémenté comme la classe SoftKeyboardTextBox dans l'assembly Keyboard.dll fourni avec l'exemple, et réside dans l'espace de noms MCEControls. Pour l'utiliser, procédez comme suit :
Ajoutez une référence à l'assembly Clavier fourni avec le MCEControls.
Ajoutez une déclaration d'espace de noms XML à l'assembly dans votre contenu.
Ajoutez le code XAML pour déclarer et configurer un SoftKeyboardTextBox.
Le résultat est affiché dans le code suivant :
<Page
...
xmlns:MCEControls="clr-namespace:MCEControls;assembly=Keyboard" >
...
<MCEControls:SoftKeyboardTextBox
Name="guessedChar"
Grid.Column="0"
Margin="0,0,5,0"
Width="80"
MaxLength="1" />
...
</Page>
Utilisation des bibliothèques de classes .NET Framework 3.0
Une application WPF pour WMC n'est pas limitée aux contrôles. Une application WPF peut également tirer parti de la largeur du .NET Framework pour les fonctionnalités supplémentaires, vous permettant d'utiliser le même code que pour les applications WPF autonomes ou hébergées par navigateur.
Par exemple, le code pour enregistrer et charger des données à partir d'une application hébergée par WMC est le même que pour les applications non WMC, et également pour les contraintes de sécurité (consultez Sécurité de Windows Presentation Foundation) ; l'emplacement d'où est lancée l'application dépend de la capacité d'une application hébergée par WMC à écrire sur le disque local.
Pour plus de sécurité, une application peut utiliser le stockage isolé pour rendre des fichiers persistants :
using System;
using System.ComponentModel;
using System.IO;
using System.IO.IsolatedStorage;
using System.Xml;
using System.Xml.Serialization;
...
public static PlayerScore Load()
{
try
{
// Load the playerscore.xml file from isolated storage
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Open, isf))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
return (PlayerScore)xmlSerializer.Deserialize(stream);
}
}
catch (FileNotFoundException ex)
{
return new PlayerScore();
}
}
public static void Save(PlayerScore playerScore)
{
// Save the playerscore.xml file to isolated storage
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Create, isf))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
xmlSerializer.Serialize(stream, playerScore);
}
}
Intégration avec les API gérées WMC
Les applications WPF pour WMC peuvent également s'intégrer avec les fonctions de WMC à travers un jeu d'API gérées installé avec le système d'exploitation, et situé dans deux assemblys : Microsoft.MediaCenter.dll et Microsoft.MediaCenter.UI.dll.
À l'aide de ces API, vous pouvez intégrer avec une large gamme de services WMC, y compris l'inspection, la configuration et la lecture de contenu multimédia. Vous trouverez plus d'informations sur ces services dans le SDK WMC.
Un aspect de ces fonctions est d'intégrer plus loin l'expérience utilisateur de votre application avec WMC. Par exemple, si une application WPF doit notifier l'utilisateur avec un message, ce dernier peut s'afficher de la façon suivante :
Toutefois, l'apparence d'un message WPF standard est incohérente avec l'expérience de WMC. Heureusement, les API gérées de WMC fournissent leur propre message de style WMC que vous pouvez utiliser avec le code comme dans l'exemple suivant :
using Microsoft.MediaCenter;
...
// Get media center host and show dialog box
MediaCenterEnvironment mce = Microsoft.MediaCenter.Hosting.AddInHost.Current.MediaCenterEnvironment;
mce.Dialog(msg, "WordGame!", DialogButtons.Ok, 1000, true);
Cela entraînera l'affichage d'une boîte de dialogue WMC comme la suivante :
Le SDK WMC doit être consulté pour une connaissance approfondie des API gérés WMC.
Remarque : |
---|
Vous ne pouvez pas exécuter un XBAP qui référence les API gérées WMC à moins que le XBAP soit hébergé par WMC. |
Développement avec Visual Studio
Jusqu'ici, cette rubrique a couvert de nombreux problèmes relatifs à la programmation de bas niveau que vous devrez résoudre lors de la création de XBAP pour WMC, y compris :
Création d'une application XBAP classique.
Utilisation d'un fichier .mcl lancer un XBAP dans WMC.
Création d'un thème WMC pour un XBAP.
Référencement des API gérées WMC.
Vous aurez probablement besoin de résoudre certains problèmes à chaque fois que vous générez un XBAP pour WMC. Plutôt que de recréer ces éléments vous-même à chaque fois que vous générez un XBAP pour WMC, vous pouvez utiliser le modèle de projet d'application Media Center (WPF) pour Microsoft Visual Studio 2005 installé avec le SDK WMC.
Remarque : |
---|
Les modèles de projet WMC sont installés uniquement si Visual Studio 2005 et "Fidalgo" sont installés. |
Le modèle de projet d'application Media Center (WPF) créera un projet Visual Studio 2005 qui a ces éléments inclus par défaut.
Pour créer une nouvelle application Media Center (WPF) :
Ouvrez Visual Studio 2005.
Choisissez Microsoft Visual Studio | Fichier | Nouveau | Projet | Visual C# | .NET Framework 3.0 | Application Media Center (WPF).
La liste suivante affiche les éléments clés générés par défaut par le modèle de projet :
Un fichier lisezmoi.txt inclut quelque informations utiles concernant la génération et le débogage des XBAP pour WPF.
Références aux assemblys WMC managées.
Un fichier MediaCenterTheme.xaml est un dictionnaire de ressources qui contient un jeu complet de styles WMC qui, par défaut, s'applique à la page par défaut, Page1.xaml.
Un fichier .mcl généré avec la sortie XBAP standard.
Notez qu'il y a un modèle de projet équivalent pour Microsoft Visual Basic.
Débogage d'un projet
Pour déboguer un XBAP dans l'hôte WMC de Visual Studio 2005, vous devez effectuer les opérations suivantes :
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés | Déboguer.
Définissez Programme de démarrage à c:\windows\system32\presentationhost.exe.
Définissez Arguments de la ligne de commande à -debug.
Exécutez l'application en choisissant Microsoft Visual Studio | Déboguer | Démarrer le débogage (ou en appuyant sur F5).
Double-cliquez sur le fichier .mcl généré pendant le processus de génération (\bin\debug\assemblyname.mcl).
L'application spécifiée dans le fichier .mcl sera lancée et hébergée dans WMC.
Installation d'une application WPF pour WMC
L'un des avantages d'utiliser WMC est sa capacité d'aider à créer des applications Microsoft Windows Installer (fichiers .msi). .Les fichiers .msi sont une méthode utile pour distribuer votre application WPF aux ordinateurs clients WMC.
Les étapes suivantes ont été suivies pour créer une application Windows Installer simple pour WordGame! :
Dans Visual Studio 2005, cliquez avec le bouton droit sur la solution XBAP dans l'Explorateur de solutions, puis cliquez sur Ajouter | Nouveau projet.
Dans la liste Types de projets, sélectionnez Autres types de projets | Installation et déploiement.
Dans la liste Modèles, sélectionnez Installer le projet ou Assistant Installation (l'Assistant vous guide pour la configuration initiale du projet d'installation Windows Installer créé).
Cliquez avec le bouton droit sur le nouveau projet Windows Installer et choisissez Ajouter | Fichier, puis choisissez les fichiers suivants :
WordGameWMC.mcl
WordGameWMC.exe
WordGameWMC.exe.manifest
WordGameWMC.xbap
WordList.txt
Keyboard.dll
Dans l'onglet Système de fichiers, choisissez Bureau de l'utilisateur.
Dans la liste des fichiers, cliquez avec le bouton droit et sélectionnez Créer un raccourci sur le Bureau de l'utilisateur.
Sélectionnez Dossier de l'application | WordGameWMC.mclXX.
Régénérez le projet Windows Installer.
Lorsque le projet Windows Installer est généré, un fichier .msi est généré sur le dossier de résultat de génération. Il est ensuite copié sur l'ordinateur client et exécuté pour installer l'application. L'installation par défaut consiste à créer un dossier conforme au format suivant :
c:\program files\CompanyName\ApplicationName\Application Files
Tous les fichiers sélectionnés pendant la configuration du projet Windows Installer sont copiés dans ce dossier, avec tous les assemblys dépendants sélectionnés par le projet Windows Installer.
En outre, une icône de raccourci à WordGameWMC.mcl est placée sur le Bureau et peut être double-cliquée ou parcourue pour démarrer l'application à l'intérieur de WMC.
Remarque : |
---|
Le fichier projet pour l'application elle-même a besoin d'être mis à jour manuellement pour garantir que le chemin d'accès au fichier .xbap ajouté au fichier .mcl généré est exact pour l'installation. |
Cette installation est une démonstration que vous pouvez utiliser pour consulter l'essentiel de la création d'un Windows Installer pour une application WPF pour WMC.
Pour les applications WPF réelles pour WMC, vos techniques d'installation doivent être différentes.
En premier lieu, votre application doit installer un fichier HTML qui fournit un lien vers l'application réelle WPF hébergée par serveur Web. L'hébergement sur un serveur Web autorise la création, la publication et la récupération de nouvelles versions de l'application par l'ordinateur client sans que l'utilisateur n'ait besoin de réinstaller l'application.
Deuxièmement, vous ne devez pas utiliser de fichiers .mcl. À la place, vous devez créer un programme d'installation de fenêtres qui appelle l'APIWMC MediaCenter.RegisterApplication ou devez exécuter l'utilitaire en ligne de commande RegisterMceApp.exe. Pour plus de détails, consultez le SDK WMC.
Voir aussi
Concepts
Vue d'ensemble des applications de navigateur XAML Windows Presentation Foundation