Información general sobre aplicaciones hospedadas en Windows Media Center para Windows Presentation Foundation

Actualización: noviembre 2007

Microsoft Windows Media Center (WMC) es una aplicación de entretenimiento multimedia digital que se instala con Windows Vista Home Premium, con Windows Vista Ultimate y con Microsoft Windows XP Media Center Edition 2005. WMC permite a los usuarios administrar y utilizar gran variedad de elementos multimedia, como televisión (digital y de alta definición), DVDs, música, vídeo, radio y fotografías.

Captura de pantalla de Windows Media Center

De manera estándar, un WMCequipo personal (PC) se puede utilizar para ver y reproducir elementos multimedia digitales. Esto se denomina la experiencia del usuario a corta distancia, porque los usuarios manejan WMC desde el PC, utilizando el mouse, el teclado y el monitor.

Sin embargo, un PC de WMC se puede configurar para admitir el control remoto o acciones del teclado remotas. En esta situación, los usuarios no tienen que encontrarse ante el PC de WMC para manejarlo. Esto se denomina experiencia del usuario a larga distancia, y corresponde a configuraciones de WMC que incluyen monitores de pantalla grande, así como hardware tradicional de entretenimiento doméstico, como televisores y sistemas de sonido.

La funcionalidad básica que WMC ofrece está compuesta de un conjunto de aplicaciones que permiten administrar y reproducir elementos multimedia digitales. Sin embargo, puede utilizar WPF para crear sus propias aplicaciones personalizadas para las versiones Windows Vista de WMC.

En este tema se proporciona una introducción a la programación de aplicaciones de WPF para WMC y se abarcan los temas siguientes:

  • Crear e implementar una aplicación de WPF de juegos simple.

  • Programación para experiencias del usuario de WMC a corta y larga distancia.

  • Personalizar controles de WPF para admitir WMC.

  • Utilizar controles nuevos específicos de WMC para WPF.

  • Aprovechar la compatibilidad en .NET Framework.

  • Integración con WMC mediante API administradas.

  • Utilizar Visual Studio 2005 para mejorar el proceso de programación.

Para obtener información completa sobre cómo programar aplicaciones para WMC, consulte Kit de desarrollo de software de Windows Media Center (WMC SDK).

Este tema contiene las secciones siguientes.

  • Hospedar aplicaciones de WPF en WMC
  • Iniciar un aplicación de WPF para WMC
  • Experiencia de usuario de WMC
  • Actualizar los controles de WPF para WMC
  • Controles de WPF adicionales para WMC
  • Utilizar las bibliotecas de clases de .NET Framework 3.0
  • Integración con las API administradas de WMC
  • Programar con Visual Studio
  • Instalar una aplicación de WPF para WMC
  • Temas relacionados

Hospedar aplicaciones de WPF en WMC

WPF permite programar dos tipos de aplicaciones: independientes y hospedadas por explorador. Las aplicaciones independientes proporcionan sus propias ventanas y cuadros de diálogo para hospedar el contenido de la aplicación. Existen dos tipos de aplicaciones hospedadas por explorador, las aplicaciones en XAML dinámico y las XBAPs, ambas hospedados por Internet Explorer 7. Sin embargo, Internet Explorer 7 no tiene conocimiento alguno de WPF; para habilitar la capacidad de que Internet Explorer 7 hospede contenido WPF, WPF proporciona aplicaciones como Internet Explorer, un servidor proxy de hospedaje. Este servidor proxy puede hospedar contenido WPF en nombre de otras aplicaciones, y se genera mediante la misma infraestructura de Windows común que Internet Explorer sabe cómo hospedar.

WMC también es capaz de hospedar este servidor proxy y, por consiguiente, puede hospedar aplicaciones de WPF hospedadas por explorador. Esto significa que puede aprovechar la plataforma de programación de aplicaciones de WPF, en general, y las características de seguridad y navegación de las aplicaciones hospedadas por explorador, en particular.

En el resto de este tema se utiliza la aplicación WordGame! para WMC (consulte WordGame! for Windows Media Center Demo).

Iniciar un aplicación de WPF para WMC

La aplicación WordGame! está compuesta de los tres archivos siguientes (el mínimo para todas las XBAPs):

  • wordgamewmc.exe. La XBAP.

  • wordgamewmc.exe.manifest. El manifiesto de aplicación de ClickOnce.

  • wordgamewmc.xbap. El manifiesto de implementación de ClickOnce.

Las XBAPs se inician utilizando ClickOnce, lo que exige configurar la aplicación con los archivos de manifiesto de implementación y aplicación (consulte Generar una aplicación de WPF (WPF)). En particular, una XBAP se inicia cuando se examina su archivo .xbap o se hace doble clic en él. Cuando se inicia, el comportamiento predeterminado es que ClickOnce descargue la aplicación en nombre de WPF, después de lo cual WPF inicia Internet Explorer y navega en él hasta la aplicación, como se muestra en la ilustración siguiente:

Captura de pantalla de WordGame

Sin embargo, para iniciar una aplicación de WMC, el usuario abre o hace doble clic en archivo de vínculo (.mcl) de WMC. Un archivo .mcl es un archivo de configuración XML que se configura en Windows para que lo abra el host de WMC (ehshell.exe) cuando se examina o se hace doble clic en él (consulte WMC SDK).

Nota

.Los archivos .mcl son cómodos durante el proceso de programación, pero no se recomiendan como mecanismo para instalar e iniciar aplicaciones de WMC. Consulte Instalar una aplicación de WPF para WMC.

Cuando se abre un archivo .mcl, el host de WMC analiza y procesa las instrucciones de configuración contenidas en el archivo .mcl; la más importante de ellas es el nombre de la aplicación que se debe abrir. Este mecanismo se utiliza para crear un archivo .mcl configurado para iniciar una XBAP:

<application url="https://localhost/wordgamewmc/wordgamewmc.xbap" />

Cuando el host de WMC procesa este archivo .mcl, el host de WMC navega hasta el archivo .xbap. Esto hace que ClickOnce inicie la aplicación en el propio host de WMC, como se muestra en la ilustración siguiente:

Captura de pantalla de WordGame

Nota

Si desea que WMC hospede una aplicación de XAML dinámico, debe configurar el archivo .mcl con un archivo .xaml, de este modo:

<application
  url="https://localhost/loosexamlapplication/loosexamlpage.xaml" />

Sin ningún cambio de la propia XBAP y con la adición de un solo archivo de configuración, WMC puede hospedar una aplicación de WPF hospedada por explorador, tal cual.

Sin embargo, la experiencia del usuario de WMC es bastante concreta y, por motivos de coherencia y estilo, las aplicaciones XBAP de WMC deben diseñarse para integrarse con esta experiencia del usuario de WMC. En el resto de este tema se abarcan los aspectos fundamentales de la experiencia de usuario de WMC y cómo generar XBAPs que tengan en cuenta dicha experiencia.

Experiencia de usuario de WMC

Proporcionar una experiencia del usuario coherente es una parte fundamental de la programación de cualquier aplicación. Con respecto a los usuarios de WMC, la aplicación debe intentar ser coherente en los aspectos siguientes:

  • Tema. El estilo global de la interfaz de usuario de una aplicación.

  • Diseño. Posición y tamaño de los controles.

  • Navegación. Utilizar el teclado, el mouse y el control remoto para navegar por la interfaz de usuario de una aplicación.

Aunque en WMC SDK encontrará una explicación detallada sobre WMC, en los temas siguientes se proporciona información general de alto nivel.

Tema

Como se puede ver en la siguiente ilustración, el tema de WMC tiene varios elementos diferenciadores:

Capturas de pantalla de Windows Media Center

El más distintivo de ellos es un fondo azul vítreo y fuentes redondeadas grandes de color claro. El resultado es crear un aspecto que pueda ser discernido con facilidad tanto por los usuarios a corta distancia, que están delante mismo del monitor, y a larga distancia, que pueden estar alejados del televisor. Aunque las aplicaciones de WPF deben seguir este enfoque general con respecto al aspecto, WMC no expone de manera nativa esta información para que la utilicen las aplicaciones de WPF. Afortunadamente, WPF sí proporciona una infraestructura enriquecida para aplicar estilos y temas que se puede aprovechar para reproducir con facilidad el aspecto de WMC, si se desea. Como alternativa, puede utilizar WPF para crear una experiencia del usuario completamente nueva y visualmente enriquecida, aunque debe tener presentes las consideraciones de diseño y navegación.

Por ejemplo, para crear un fondo de estilo WMC para las páginas, puede proceder como sigue:

<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>

Dado que los temas suelen estar compuestos de más de un elemento, puede ser conveniente utilizar un diccionario de recursos personalizado para encapsular los estilos del tema de 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>

Para incorporar un diccionario de recursos a una aplicación, se configura el elemento Application.Resources de la definición de aplicación de manera que haga referencia al archivo del diccionario de recursos .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>

En la ilustración siguiente se muestra la aplicación WordGame! actualizada con un complemento completo de estilos y recursos para el tema de WMC.

Captura de pantalla de WordGame

WMC no le impide programar temas de aplicación que incorporan los elementos específicos de la aplicación y de la marca. Sin embargo, existen varios aspectos del tema de una aplicación que deben tenerse en cuenta al diseñar cualquier aplicación para lograr la experiencia del usuario de WMC, que incluyen:

  • Colores seguros para televisión: no utilice colores luminosos que sean susceptibles a mostrarse borrosos (p. ej., verde, rojo).

  • Contraste: para que el texto se distinga visualmente del fondo, asegúrese de que la elección de los colores de primer plano y de fondo de los elementos visuales tenga un nivel adecuado de contraste.

  • Fuentes: puede mejorar la legibilidad utilizando fuentes de mayor tamaño sin enlaces. Además, quitar las palabras innecesarias del contenido puede ayudar a crear áreas de texto más fáciles de leer.

  • Botones: el aspecto de los botones debe ser simple.

  • Imágenes: al crear imágenes, tenga en cuenta la calidad de presentación y el tamaño, así como el tamaño de descarga.

  • Animación: utilice la animación cuando sea apropiado.

Consulte WMC SDK para obtener información detallada sobre los temas de aplicación de WMC.

Diseño

Un problema puede no resultar evidente a primera vista se produce cuando un usuario desplaza el puntero del mouse sobre el host de WMC, lo que hace que el host de WMC muestre elementos de la interfaz de usuario adicionales para la navegación controlada por mouse, como se muestra en la ilustración siguiente:

Captura de pantalla de ejemplo WordGame

En esta ilustración, puede ver las partes superior izquierda e inferior derecha de la interfaz de usuario de la aplicación, cubiertas por el marco de navegación. En esta situación, puede actualizar el diseño de la interfaz de usuario para que tenga en cuenta la interfaz de usuario de navegación. Para WordGame!, esto implicó mover el título de la aplicación a la derecha de la interfaz de usuario y agregar una fila de 50 píxel de alto a la parte inferior del elemento Grid que hospeda el contenido de la página principal:

<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>

El efecto de agregar estas filas se muestra en la ilustración siguiente:

Captura de pantalla de ejemplo WordGame

Por esta razón, las XBAPs para WMC tienen que ser sensibles a los distintos comportamientos de diseño y coherencia de WMC.

Los aspectos de diseño fundamentales que debe tener en cuenta son:

  • Diseño de la aplicación: el diseño de las aplicaciones debe ser simple y coherente, para facilitar al usuario el desarrollo y la conservación de la familiaridad con la interfaz de usuario de su aplicación.

  • Diseño de WMC: el diseño de las aplicaciones debe, siempre que sea práctico, conservar la coherencia con la experiencia del usuario de WMC general. Esto permite que los usuarios que ya están familiarizados con WMC se sientan cómodos antes con la aplicación.

  • Vídeo: si la aplicación muestra vídeo mediante las API administradas de WMC, WMC reproducirá el vídeo en la parte inferior izquierda de la pantalla. Por consiguiente, debe tenerlo en cuenta al diseñar la interfaz de usuario.

  • Resolución: la interfaz de usuario y el diseño de la aplicación deben estar destinados para una resolución de 1024 x 768. WPF ofrece compatibilidad de diseño para a ayudarlo a diseñar la interfaz de usuario para 1024 x 768 y asegurarse de que el diseño se conserve al cambiar el tamaño de la interfaz de usuario (consulte Sistema de diseño para obtener más información).

Consulte WMC SDK para obtener información detallada con respecto al diseño de WMC.

En esencia, el tema y el diseño rigen cómo se organizan los controles que componen la interfaz de usuario de la aplicación. La navegación, por otro lado, dicta cómo los usuarios tienen acceso a los controles y se mueven entre ellos.

El control que recibe los datos proporcionados por el usuario es el que tiene el foco. Para llevar el foco a un control concreto cuando se muestra una página de la aplicación XBAP, puede utilizar el marcado:

<!-- Set focus on guess character text box -->
<Page ... FocusManager.FocusedElement="{Binding ElementName=guessedChar}">
    ...
</Page>

Esto se debe hacer para admitir los modos de manejo a corta y larga distancia.

Para permitir a los usuarios navegar por los controles de una aplicación de WMC en los modos de corta y larga distancia, la aplicación debe administrar la navegación mediante un mouse, un teclado (conectado o remoto) y control remoto. De manera predeterminada, la navegación con el mouse y el teclado es igual que en cualquier aplicación de WPF, e incluye:

  • Hacer clic en los controles para desplazar el foco a ellos.

  • Utilizar la tecla de tabulación para mover el foco de un control a otro.

  • Utilizar la propiedad IsDefault de un botón para especificar que se hace clic en él de forma predeterminada cuando se presiona la tecla ENTRAR.

  • Utilizar la propiedad IsCancel de un botón para especificar que se hace clic en él de forma predeterminada cuando se presiona la tecla ESC.

Para admitir el control remoto, es preciso admitir la navegación direccional, lo que significa permitir a los usuarios mover el foco de los controles haciendo clic en los botones arriba, abajo, izquierda y derecha del dispositivo de control remoto. No es necesario escribir ningún código especial para admitir la navegación direccional, siempre que utilice un subconjunto concreto de controles de WPF.

Actualizar los controles de WPF para WMC

Aunque WPF proporciona gran cantidad de controles, sólo un subconjunto de ellos es adecuado para su uso en las aplicaciones de WMC de manera predeterminada. El factor determinante es si es posible navegar hasta ellos, manipularlos y salir de ellos mediante un dispositivo de control remoto. En la ilustración siguiente se muestra un subconjunto de controles de WPF que admiten datos proporcionados desde un dispositivo de control remoto (mediante los estilos de WMC):

Captura de pantalla de Windows Media Center

Estas limitaciones no impiden el uso de otros controles de WPF, aunque deberá realizar tareas adicionales para que funcionen con WMC. Por ejemplo, tomemos el control Slider, que se muestra hospedado en WMC en la ilustración siguiente:

Captura de pantalla de control deslizante

De manera predeterminada, con un mouse, un teclado o un dispositivo de control remoto es posible mostrar un Slider o navegar hasta él. Sin embargo, no es posible salir de Slider mediante un dispositivo de control remoto: Slider interpreta las pulsaciones en los botones arriba, abajo, izquierda y derecha del dispositivo de control remoto como intentos de aumentar o disminuir el valor de Slider.

En estas situaciones, una solución consiste en crear un control compuesto que contenga el control deseado y, además, los controles adicionales aptos para el control remoto que permitan manipularlo con facilidad. Por ejemplo, Slider se puede utilizar con dos botones, uno para disminuir el valor de Slidery otro para incrementar el valor de Slider, mediante el código siguiente:

<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++;
    }
}

El resultado se muestra en la ilustración siguiente.

Captura de pantalla de control deslizante

Controles de WPF adicionales para WMC

Otro control problemático es TextBox, mostrado en la ilustración siguiente. Con un dispositivo de control remoto, no es posible escribir caracteres en TextBox. Lo que se necesita es un control que permite al usuario del dispositivo de control seleccionar uno o más caracteres. Una técnica común que ya se utiliza en los dispositivos móviles cuyo factor de forma impide disponer de un teclado completo, es mostrar un teclado en la interfaz de usuario y permitir la selección de los caracteres necesarios.

En el ejemplo se incluye un control de teclado de software para aplicaciones de WPF destinadas a WMC, que se muestra en la ilustración siguiente:

Control de teclado programable

Esto se implementa como la clase SoftKeyboardTextBox del ensamblado Keyboard.dll que se suministra con el ejemplo y reside en el espacio de nombres MCEControls. Para utilizarlo, proceda como sigue:

  1. Agregue una referencia al ensamblado Keyboard que se distribuye con MCEControls.

  2. Agregue una declaración de espacio de nombres XML al ensamblado en el contenido.

  3. Agregue XAML para declarar y configurar SoftKeyboardTextBox.

El resultado se muestra en el código siguiente:

<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>

Utilizar las bibliotecas de clases de .NET Framework 3.0

Una aplicación de WPF para WMC no se limita a los controles. Una aplicación de WPF también puede aprovechar .NET Framework al máximo para obtener funcionalidad adicional, y permitirle utilizar el mismo código que para aplicaciones de WPF independientes u hospedadas por explorador.

Por ejemplo, el código necesario para guardar y cargar los datos de una aplicación hospedada por WMC es igual que para aplicaciones que no son de WMC, y lo mismo sucede con las restricciones de seguridad (consulte Seguridad de Windows Presentation Foundation); dependiendo de dónde se inicie, la aplicación hospedada por WMC podrá escribir en el disco local o no.

Por seguridad, una aplicación puede utilizar el almacenamiento aislado para conservar archivos:

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);
    }
}

Integración con las API administradas de WMC

Las aplicaciones de WPF para WMC también se pueden integrar con las funciones de WMC mediante un conjunto de API administradas que se instala con el sistema operativo y que se encuentran en dos ensamblados: Microsoft.MediaCenter.dll y Microsoft.MediaCenter.UI.dll.

Gracias a estas API, puede efectuar la integración con una gama amplia de servicios de WMC, que incluyen la inspección, configuración y reproducción de contenido multimedia. Encontrará más información sobre ellas en WMC SDK.

Un aspecto de estas funciones es integrar aún más la experiencia del usuario de la aplicación con WMC. Por ejemplo, si una aplicación de WPF necesita notificar algo al usuario mediante un cuadro de mensaje, podría mostrar uno similar al siguiente:

Captura de pantalla de ejemplo WordGame

Sin embargo, el aspecto de un cuadro de mensaje estándar de WPF no es coherente con la experiencia del usuario de WMC. Afortunadamente, las API administradas de WMC proporcionan su propio cuadro de mensajes de tipo WMC que puede utilizar con código como el siguiente:

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);

Este código hace que se muestre un cuadro de diálogo de WMC como éste:

Captura de pantalla de ejemplo WordGame

Es conveniente consultar WMC SDK para obtener conocimientos en profundidad sobre las API administradas de WMC.

Nota

No se puede ejecutar una XBAP que hace referencia a las API administradas de WMC a menos que la XBAP se hospede en WMC.

Programar con Visual Studio

Hasta ahora, en este tema se han abarcado los problemas básicos de programación que deberá tener en cuenta al crear XBAPs para WMC, lo que incluye:

  • Crear una aplicación XBAP típica.

  • Utilizar un archivo .mcl para iniciar un XBAP en WMC.

  • Crear un tema WMC para una XBAP.

  • Hacer referencia a las API administradas de WMC.

Éstos son los problemas que probablemente necesitará abordar en cada XBAP que genere para WMC. En lugar de volver a crear estos elementos personalmente cada vez que genere una XBAP para WMC, puede utilizar la plantilla de proyecto Media Center Application (WPF) para Microsoft Visual Studio 2005 que se instala con WMC SDK.

Nota

Las plantillas de proyecto de WMC únicamente se instalan si se instalan Visual Studio 2005 y también "Fidalgo".

La plantilla de proyecto Media Center Application (WPF) crea un proyecto de Visual Studio 2005 que incluye estos elementos de manera predeterminada.

Para crear una nueva aplicación con Media Center Application (WPF):

  1. Abra Visual Studio 2005.

  2. Elija Microsoft Visual Studio | Archivo | Nuevo | Proyecto | Visual C# | .NET Framework 3.0 | Media Center Application (WPF).

En la lista siguiente se muestran los elementos clave que la plantilla de proyecto genera de manera predeterminada:

  • Un archivo readme.txt, que incluye texto útil sobre la compilación y depuración de XBAPs para WPF.

  • Referencias a los ensamblados administrados de WMC.

  • Un archivo MediaCenterTheme.xaml, que es un diccionario de recursos que contiene un conjunto completo de estilos de WMC que, de manera predeterminada, se aplican a la página predeterminada, Page1.xaml.

  • Un archivo .mcl, que se genera junto con el resultado de XBAP estándar.

Observe que existe una plantilla de proyecto equivalente para Microsoft Visual Basic.

Depurar proyectos

Para depurar una XBAP dentro del host de WMC en Visual Studio 2005, necesita hacer lo siguiente:

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto y elija Propiedades | Depurar.

  2. Establezca Programa de inicio en c:\windows\system32\presentationhost.exe.

  3. Establezca Argumentos de la línea de comandos en - debug.

  4. Ejecute la aplicación, para ello, elija Microsoft Visual Studio | Depurar | Iniciar depuración (o presione F5).

  5. Haga doble clic en el archivo .mcl que se genera durante el proceso de compilación (\bin\debug\assemblyname.mcl).

La aplicación especificada en el archivo .mcl se iniciará y hospedará en WMC.

Instalar una aplicación de WPF para WMC

Una de las ventajas de utilizar WMC es su capacidad de ayudar a crear aplicaciones de Microsoft Windows Installer (archivos .msi). .Los archivos .msi constituyen una manera útil de distribuir la aplicación de WPF a los equipos del cliente WMC.

El procedimiento siguiente se ha utilizado para crear una aplicación de Windows Installer simple para WordGame!:

  1. En Visual Studio 2005, haga clic con el botón secundario del mouse en la solución de XBAP en el Explorador de soluciones y seleccione Agregar | Nuevo proyecto.

  2. En la lista Tipos de proyecto, seleccione Otros tipos de proyectos | Instalación e implementación.

  3. En la lista Plantillas, seleccione Proyecto de instalación o Asistente para proyectos de instalación (éste último le guiará en la configuración inicial del proyecto de instalación de Windows Installer que se crea).

  4. Haga clic con el botón secundario en el nuevo proyecto de Windows Installer, elija Agregar | Archivo y elija los archivos siguientes:

    1. WordGameWMC.mcl

    2. WordGameWMC.exe

    3. WordGameWMC.exe.manifest

    4. WordGameWMC.xbap

    5. WordList.txt

    6. Keyboard.dll

  5. En la ficha Sistema de archivos, elija Escritorio del usuario.

  6. En la lista de archivos, haga clic con el botón secundario del mouse y seleccione Crear acceso directo a Escritorio del usuario.

  7. Seleccione Carpeta de la aplicación | WordGameWMC.mcl.

  8. Vuelva a compilar el proyecto de Windows Installer.

Al compilar el proyecto de Windows Installer, se genera un archivo .msi en la carpeta de resultado de la compilación. A continuación, se copia en el equipo cliente y se ejecuta para instalar la aplicación. La instalación predeterminada consiste en crear una carpeta conforme con el formato siguiente:

c:\program files\CompanyName\ApplicationName\Application Files

Todos los archivos que se seleccionaron durante la configuración del proyecto de Windows Installer se copian en esta carpeta, junto con todos los ensamblados dependientes seleccionados por el proyecto de Windows Installer.

Además, se coloca en el escritorio un icono de acceso directo a WordGameWMC.mcl en el que se puede hacer doble clic o que se puede examinar para iniciar la aplicación dentro de WMC.

Nota

El archivo de proyecto de la propia aplicación deberá actualizarse manualmente para asegurarse de que la ruta de acceso al archivo .xbap que se agrega al archivo .mcl generado es correcta para la instalación.

Esta instalación es una demostración que puede utilizar para observar los fundamentos de la creación de una aplicación de Windows Installer para una aplicación de WPF para WMC.

Para las aplicaciones de WPF reales para WMC, las técnicas de instalación deberían ser diferentes.

En primer lugar, la aplicación debe instalar un archivo HTML que proporcione un vínculo a la aplicación de WPF hospedada por el servidor web real. El hospedaje en un servidor web permite crear y publicar nuevas versiones de la aplicación y que el equipo cliente las seleccione sin que el usuario tenga que reinstalar la aplicación.

En segundo lugar, no se debe utilizar archivos .mcl. En su lugar, debe crear un programa de instalación de Windows que llame a la API MediaCenter.RegisterApplication de WMC, o ejecutar la utilidad de línea de comandos RegisterMceApp.exe. Consulte WMC SDK para obtener información más detallada.

Vea también

Conceptos

Información general sobre aplicaciones de explorador XAML de Windows Presentation Foundation

Otros recursos

Windows Media Center Software Development Kit