En el último post de la serie esta que comencé de "Las Cosas Claras" estuvimos viendo como podíamos acceder al DOM del explorador para, en el ejemplo, llamar a funciones javascript. Pues bien, hoy veremos como hacer precisamente lo contrario.
En el siguiente ejemplo veremos como desde javascript podemos provocar cambios en el Silverlight, en este caso cambiar la orientación de los elementos de un StackPanel, pero también podríamos provocar el inicio de una animación o pararla, etc.
En primer lugar utilizaremos el siguiente namespace ya que contiene lo necesario para realizar esto:
using System.Windows.Browser;
Centrándonos en la página principal del Silverlight Page.xaml. El código XAML será muy sencillo, un simple StackPanel con varios botones:
<StackPanel x:Name="LayoutRoot" Background="White">
<Button Content="Rojo" Background="Red"/>
<Button Content="Verde" Background="Green"/>
<Button Content="Azul" Background="Blue"/>
<Button Content="Amarillo" Background="Yellow"/>
<Button Content="Blanco" Background="White"/>
<Button Content="Negro" Background="Black"/>
</StackPanel>
Y en el código fuente debemos registrar la clase MiTipoScriptable para poderla usar desde javascript de la siguiente manera:
- En el evento Loaded de la página registraremos el objeto que será usados para acceder desde javascript al método.
HtmlPage.RegisterScriptableObject("slObject", this);
- Y por último decoraremos un método de la clase Page, donde hemos realizado el registro del objeto del punto anterior, con el decorador [ScriptableMember] el cual será el método al que podremos llamar desde javascript.
[ScriptableMember]
public void slMethod(string o)
{
if (o != "H")
LayoutRoot.Orientation = Orientation.Vertical;
else
LayoutRoot.Orientation = Orientation.Horizontal;
}
Ahora nos vamos a la página ASPX desde la cual llamaremos al método slMethod del Silverlight. Para esto en primer lugar obtendremos el contenedor del Silverlight el cual en nuestro caso del ejemplo se llama SilverlightContainer y por último accederemos al método registrado mediante la siguiente sintaxis:
function Orientacion(oo)
{
var slPlugin = $get("SilverlightContainer");
slPlugin.Content.slObject.slMethod(oo);
}
PD: Se han creado dos botones Vertical y Horizontal que llamarán a la función Orientacion para cambiar el tipo de orientación del StackPanel.

posted on Friday, July 04, 2008 1:09 AM
Feedback
12/15/2008 12:01 AM |
very thanks...
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
2/21/2009 10:01 AM |
Danke Schön..
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
3/21/2009 9:04 PM |
Magnificient Site! Thanks..
10/12/2009 6:31 AM |
Magnificient Site! Thanks
10/15/2009 8:36 AM |
Nice Post
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
10/27/2009 9:14 PM |
tang
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
11/8/2009 9:12 PM |
Thanks!I think this article is very helpful!
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
11/21/2009 5:33 PM |
This is a great article. I’m new to blogging but still learning. Thanks for the great resource.
# re: Las Cosas Claras: Dsesde Javascript interactuar con Silverlight
11/21/2009 5:35 PM |
This is a great article. I’m new to blogging but still learning. Thanks for the great resource...
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
12/31/2009 12:18 PM |
This is a great article. I’m new to blogging but still learning. Thanks for the great resource...
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
1/6/2010 12:57 PM |
hersey iyi
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
1/18/2010 7:55 AM |
okey
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
1/20/2010 12:38 PM |
Thanks
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
2/28/2010 4:58 AM |
thank you...
# re: Las Cosas Claras: Desde Javascript interactuar con Silverlight
2/28/2010 4:58 AM |
saglikli yasam ve saglikli beslenme icin diyet ve diyetisyen