Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Hadess_inf en 11 Agosto 2008, 02:52 am



Título: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 11 Agosto 2008, 02:52 am
Bueno quisiera saber si alquien me hecha una mano que deseo acceder a las propiedades de Form1 desde Form2, todo desde WPF. Gracias de antemano. Saludos.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Meta en 11 Agosto 2008, 06:00 am
Pon la propiedad en pública.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 11 Agosto 2008, 06:48 am
Lo hice pero nada.

 :rolleyes: :rolleyes:


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: sangano en 11 Agosto 2008, 16:05 pm
Hola, no  si eso se podra hacer, cuando trabajas con WPF, ya no usas WinForms, es uno o el otro, ahora, si explicas o mustras algo de lo que estas haciendo, si es por el xaml o por el C#, seria mas facil ayudarte.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: sangano en 11 Agosto 2008, 16:09 pm
Hola, no  si eso se podra hacer, cuando trabajas con WPF, ya no usas WinForms, es uno o el otro, ahora, si explicas o mustras algo de lo que estas haciendo, si es por el xaml o por el C#, seria mas facil ayudarte.
Tirando una respuesta el vuelo, puede que te sirvan las DependencyProperty, revisa sobre eso, pero de igual forma explica mas o muestra lo que estas haciendo.

saludos.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 11 Agosto 2008, 17:42 pm
Tengo un WinForm llamado frm_form1 y tengo un WPFForm llamado wpf_form1. En el form wpf tengo un boton, al dar click en el, se debe de cambiar el backgroundimage del frm_form1, No esta de mas decir que el wpf_form1 se abre desde un boton en el frm_form1.

Saludos.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: sangano en 11 Agosto 2008, 18:32 pm
Es necesario hacer eso?, por que quieres llamar desde un winform una ventana WPF, como te dije anteriormente un WinForm y una ventana WPF son cosas totalmente diferente y para poder tener este tipo de comunicacion es mas complicado de hacer, es preferible que veas la forma de cambiar tu WinForm por algo nativo WPF. Si aun quieres hacerlo tienes que empezar a hacer "host" de la aplicacion WPF en la del WinForm para que te pueda funcionar, lee estas paginas.
http://weblogs.asp.net/jdanforth/archive/2008/07/29/open-a-wpf-window-from-winforms.aspx
http://msdn.microsoft.com/en-us/library/ms742474.aspx
http://forums.msdn.microsoft.com/en-US/wpf/thread/442782b1-00a1-4e2e-9cc6-ae99b6699126/

Es recomendable no tratar de mezclar estos dos,  WPF es lo suficente completo para poder igualar las mismas cosas que se hacian en un WinForm.

Por WPF cuando haces this en la ventana existe una propiedad que es Owner, creo que esta tiene una referencia, si es que la hay, algun tipo de objeto o control que llamo la ventana, ahora, hay que ver si esto te sirve, segun lo que te he dicho.

espero que te sirva, saludos.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 12 Agosto 2008, 18:21 pm
Gracias por las referencias pero aun sigo sin poder hacer lo que necesito. Pues bien si no puedo hacer esto entonces quizas me digas como hacer esto pero entre 2 formularios wpf, gracias.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: sangano en 12 Agosto 2008, 23:35 pm
Ya en WPF es mas facil de hacer, creo. En el evento que llame la segunda ventana o formulario, algo asi:
Código
  1. //evento de boton por ejemplo.
  2. void AbreFormulario(object sender, RoutedEventArgs e)
  3. {
  4.   //esto podrias ver si te funciona con la informacion que te pase anteriormente.
  5.    ventana2.Owner = this;
  6.    ventana2.Show();
  7. }
  8.  

Entonces ya en la segunda ventana cuando selecciones el boton para cambiar el fondo o lo que quieras hacer sobre la primera ventana.

Código
  1. void CambiaAlgoDeLaPrimera(object sender, RoutedEventArgs e)
  2. {
  3.    Window ventana1 = this.Owner;
  4.   ventana1.Background = new SolidColorBrush(Colors.Red);
  5. }
  6.  

En la variable ventana1 tendras acceso a todas las propiedades y metodos publicos de esta clase.

Lo de colocar una imagen en el fondo, no lo  he probado, pero no creo que te complique mucho hacerlo, en el ejemplo cambia el color del fondo.

ojala te sirva.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 12 Agosto 2008, 23:58 pm
Se agradece la respuesta, que llegue hoy a mi casa lo pruebo y te comento como me fue. Busque por todo el internet y no encontre nada de lo que me acabas de decir en fin, quizas o puse palabras clave. Gracias nuevamente y un saludo.

En la noche regreso con noticias.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: Hadess_inf en 13 Agosto 2008, 17:16 pm
Bueno e probado lo que mencionaste y todo es correcto, con esto solucione una gran parte del problema, sin embargo aun no logro solucionar el problema del fondo. HE probado con todo, aun asi seguire tratando y aviso cualquier cosa. Tambien me gustaria saber si se pueden agregar controles en codigo .xaml.vb, de ser mer un ejemplo practico porque e buscado el controls.add pero no encuentro. De cualquier forma buscare y hare el post respectivo segun encuentre las soluciones. Un saludo


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: SeniorX en 14 Agosto 2008, 17:38 pm
Lo que puedes hacer es que el control siempre esté ahi, pero cuando quieras agregarlo le pones un textbox1.Visible = true; En caso de ser un textbox.


Título: Re: Acceder a propiedades de un form desde otro.
Publicado por: chrominum en 18 Agosto 2008, 13:56 pm
en el form 1 puedes poner una funcion public static y llamarla desde el segundo, y en la funcion modificar el background.