2010-09-16 10 views
5

Soy nuevo en WPF. Creó un nuevo UserControl de WPF. Observe que algunas personas usan un archivo app.xaml para establecer recursos de nivel de aplicación internos.App.XAML ¿dónde estás?

Mi solución consiste en un WinForm y un UserControl de WPF. No veo en ninguna parte ningún archivo app.xaml.

¿Cómo proceder?

Respuesta

4

App.xaml está asociado con una aplicación de WPF. Si solo tienes un UserControl, no hay ninguna aplicación para que forme parte de él, ¿verdad?

Crear una aplicación de WPF y tendrá una App.xaml para poner los recursos a nivel de aplicación en.

Como curiosidad, ¿por qué tienes WinForm si está utilizando un control de usuario de WPF?

EDITAR: Para repetir mi comentario: no se le proporcionará WPF Aplicación recursos sin problemas cuando no está creando una aplicación WPF.

EDITAR: Como se señala en la respuesta de Anthony Brien, parece que puede hackearlo, pero recomendaría encarecidamente contra este tipo de cosas si es posible. Fundamentalmente, está trabajando en contra de las expectativas de la plataforma, y ​​esa nunca es una buena situación.

+2

porque pensamos en llenar una gran aplicación existente de WinForms con elementos de WPF. No podemos cambiar toda la lógica directamente a WPF en este momento. – serhio

+1

Actualmente estoy alojando los controles de usuario de WPF en una gran aplicación de winforms que con suerte se convertirá en una aplicación de WFP completa.Pero si este es un proyecto nuevo, estoy totalmente de acuerdo con Jon Skeet –

+0

, esta es una aplicación de demostración. Pero el alcance de esa demostración es demostrar cómo un WinForm puede alojar controles WPF. Entonces, en principio, no puedo cambiarlo a WPF. – serhio

3

Es necesario crear un WPF o aplicación de Silverlight para conseguir ese archivo usted es anfitrión en realidad un control de WPF en una aplicación Windows Forms

+0

Entonces, sin una aplicación WPF completa no tengo acceso en app.xaml, ¿estoy en lo cierto? – serhio

+1

Si se trata de una aplicación de demostración, ¿realmente la necesita? –

+0

el alcance de esa demostración es demostrar cómo un WinForm puede alojar controles WPF. Entonces, en principio, no puedo cambiarlo a WPF. – serhio

3

Si creó un proyecto WinForm, no tendrá una aplicación.xaml.

Cree un proyecto WPF en su lugar.

+1

Necesito que un Winform hots WPF. – serhio

2

En este artículo se explica con gran detalle cómo tener aplicaciones recursos de ancho en un escenario alojada/interoperabilidad:

http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/

La trayectoria de la solución que elegí (del artículo) es incluir la aplicación. XAML como un elemento de página

archivo de proyecto Modificar:

<Page Include="App.xaml" /> 
<Compile Include="App.xaml.cs"> 
    <DependentUpon>App.xaml</DependentUpon> 
    <SubType>Code</SubType> 
</Compile> 

Añadir un código:

public App() 
{ 
    InitializeComponent(); 
} 

public static void EnsureApplicationResources() 
{ 
    if (Application.Current == null) 
    { 
     // create the Application object 
     new App(); 
    } 
} 

Más detalles en el artículo.

Cuestiones relacionadas