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.
Pon la propiedad en pública.
Lo hice pero nada.
:rolleyes: :rolleyes:
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.
Cita de: 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.
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.
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.
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.
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.
Ya en WPF es mas facil de hacer, creo. En el evento que llame la segunda ventana o formulario, algo asi:
//evento de boton por ejemplo.
void AbreFormulario(object sender, RoutedEventArgs e)
{
//esto podrias ver si te funciona con la informacion que te pase anteriormente.
ventana2.Owner = this;
ventana2.Show();
}
Entonces ya en la segunda ventana cuando selecciones el boton para cambiar el fondo o lo que quieras hacer sobre la primera ventana.
void CambiaAlgoDeLaPrimera(object sender, RoutedEventArgs e)
{
Window ventana1 = this.Owner;
ventana1.Background = new SolidColorBrush(Colors.Red);
}
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.
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.
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
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.
en el form 1 puedes poner una funcion public static y llamarla desde el segundo, y en la funcion modificar el background.