xaml 2 cpp

12/03/2011 - 23:03 por Hernán | Informe spam
Hola, disculpen mi ignorancia.

¿Existe alguna herramienta para convertir de XAML a C++?

Gracias.

Todo bien

Preguntas similare

Leer las respuestas

#6 Hernán
17/03/2011 - 03:43 | Informe spam
"xcal" escribió en el mensaje de noticias
news:ilrb6c$p4j$
- comentarios adicionales -

el XAML de WPF es solo un
designer sin ningun soporte a eventos,
o mayores definiciones, solo sirve para
dibujar o definir cosas en la pantalla.

Tengo entendido que rueda mas rápido que
el tipico designer de C#, pero sabiendo lo lento
que era iniciar una aplicacion WinForms
en Windows Mobil creo que Win Phone 7
estaria condenado a -no- iniciar sus aplicativos
de forma instantanea, porque las clases WPF
me parecen mucho mas pesadas que las Win Forms

No me compré aun ningun Win Phone 7,
habria que chequear





En winforms el output del diseñador ocurre en el lenguaje del
compilador. En wpf, el output ocurre en xaml, que c++ no parsea.

De todos modos, no es xaml lo que uno desea, sino el diseñador.

Digamos, el ejemplo del primer tutorial en la doc de wpf, podrías
traducirlo a c++, así

//simple.cpp //#pragma once
#using <System.dll>
#using <PresentationCore.dll>
#using <PresentationFramework.dll>
#using <WindowsBase.dll>

#include <windows.h>

using namespace System;
using namespace System::Windows;
using namespace System::Windows::Controls;

//
public ref class MiVentana : public Window
{
public:
MiVentana();

event RoutedEventHandler ^Click;

private:
void button_click(Object ^sender, RoutedEventArgs ^e);
};

//
[STAThread]
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
lpCmdLine, int nCmdShow)
{
Application ^aplica = gcnew Application();
aplica->Run(gcnew MiVentana());

//
return 0;
}

//
MiVentana::MiVentana()
{
this->Title = L"Ventana con un botón";
this->Width = 250;
this->Height = 100;

Button ^boton = gcnew Button();

boton->Content = L"Clicame acá";
boton->Name = L"button";
boton->Click += gcnew RoutedEventHandler(this,
&MiVentana::button_click);
this->Content = boton;
}

//
void MiVentana::button_click(Object ^sender, RoutedEventArgs ^e)
{
MessageBox::Show(L"Hello, Windows Presentation Foundation!");
}

=
Respuesta Responder a este mensaje
#7 Hernán
17/03/2011 - 03:47 | Informe spam

event RoutedEventHandler ^Click;





Esto no es necesario.
Respuesta Responder a este mensaje
#8 xcal
17/03/2011 - 21:21 | Informe spam
//#pragma once
#using <System.dll>
#using <PresentationCore.dll>
#using <PresentationFramework.dll>
#using <WindowsBase.dll>



muchas gracias por la idea, pero
tu metodo puede fallar si no
todas las funciones de WPF
se encuentran dentro de
PresentationFramework.dll, algo muy tipico
en Net Framework,
supongo que eso ya lo resolviste

Tal vez, traducir XAML a un designer de C++
puede que sea mas complicado de lo que
parece, soy iniciante en eso,
hay que chequear si hay muchos trucos pequeños
escondidos para escribir el archivo XAML

En todo caso, tal vez sea más facil
"rodar el proyecto WPF", y cuando se
tiene la ventana en pantalla, ahi
obtener la ventana padre,
las ventanas hijas, los hijos de estos, etc, y ahi
escribir un "designer" aproximado para C++.
esto es harto conocido, y libre de analizar
los textos del archivo XAML

me temo que tal vez dije solo p*ja mental

un saludo,
Carlos
Respuesta Responder a este mensaje
#9 Hernán
17/03/2011 - 22:37 | Informe spam
"xcal" escribió en el mensaje de
noticias:iltqen$8nj$

> //#pragma once
> #using <System.dll>
> #using <PresentationCore.dll>
> #using <PresentationFramework.dll>
> #using <WindowsBase.dll>

muchas gracias por la idea, pero
tu metodo puede fallar si no
todas las funciones de WPF
se encuentran dentro de
PresentationFramework.dll, algo muy tipico
en Net Framework,
supongo que eso ya lo resolviste



Hola Carlos,

yo simplemente abrí un proyecto CLR vacío y agregué todas las
referencias que necesitaba...

Lo que no pude hacer es evitar incluir el <windows.h> o, mejor dicho, el
WinMain() ya que si llamo a main() el tipo me genera un ejecutable para
la consola. El programa corre, pero se ve la ventana de la consola.

Tal vez, traducir XAML a un designer de C++
puede que sea mas complicado de lo que
parece, soy iniciante en eso,
hay que chequear si hay muchos trucos pequeños
escondidos para escribir el archivo XAML

En todo caso, tal vez sea más facil
"rodar el proyecto WPF", y cuando se
tiene la ventana en pantalla, ahi
obtener la ventana padre,
las ventanas hijas, los hijos de estos, etc, y ahi
escribir un "designer" aproximado para C++.
esto es harto conocido, y libre de analizar
los textos del archivo XAML



Bueno, yo me conformaba con un conversor xaml->cpp. Digamos, lo que
escribí dentro del constructor de MiVentana, estaba escrito en xaml.


me temo que tal vez dije solo p*ja mental

un saludo,
Carlos



Todo bien.
Respuesta Responder a este mensaje
#10 xcal
17/03/2011 - 23:57 | Informe spam

Hola Carlos,

yo simplemente abrí un proyecto CLR vacío y agregué todas las referencias
que necesitaba...



hehe, de esa forma en su tiempo,
llegue a crear programas
Compact Net 1.0 sin visual studio,
hehehe
pero el problma es que podria faltarte un dll

Lo que no pude hacer es evitar incluir el <windows.h> o, mejor dicho, el
WinMain() ya que si llamo a main() el tipo me genera un ejecutable para la
consola. El programa corre, pero se ve la ventana de la consola.



supongo que si se puede hacer que no se vea la consola

Tal vez, traducir XAML a un designer de C++
puede que sea mas complicado de lo que
parece, soy iniciante en eso,
hay que chequear si hay muchos trucos pequeños
escondidos para escribir el archivo XAML



En todo caso, tal vez sea más facil
"rodar el proyecto WPF", y cuando se
tiene la ventana en pantalla, ahi
obtener la ventana padre,
las ventanas hijas, los hijos de estos, etc, y ahi
escribir un "designer" aproximado para C++.
esto es harto conocido, y libre de analizar
los textos del archivo XAML



Bueno, yo me conformaba con un conversor xaml->cpp. Digamos, lo que
escribí dentro del constructor de MiVentana, estaba escrito en xaml.



Hernán disculpa, no escribí que ya busque
en internet, no encontre y me parece
que no hay, ojalá sea cuestion de tiempo
que aparezca algun conversor. De ahi
traté de imaginar algua forma razonable y
rapida de contornear la situación

Por otro lado, el hecho de que Win Phone 7
sea puro codigo manejado, implica que posiblemente
esa tendencia se expanda a Window 8 y no precisemos
combinar codigo nativo con manejado, en fin
quien sabe que va a pasar
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida