¡Fernando Cortés Hierro! MCSD

Experimentando con el usuario

Silverlight Beta2 to RTM: OnClick Event Failed

clock October 28, 2008 12:43 by author Fernando

Volvemos a esta serie de posts relacionados con problemas que nos podemos encontrar a la hora de migrar una aplicación Silverlight Beta 2 a la versión final. En este caso supongamos que tenemos una aplicación silverlight con el siguiente código Xaml:

   1:      <Grid x:Name="LayoutRoot">
   2:          <Image Margin="0,0,0,0" Source="Images/background.jpg" Stretch="Fill" />
   3:          <Labs:Control1 HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
   4:          <Labs:Control2 Height="92.719" HorizontalAlignment="Left" Margin="8,8,0,0" VerticalAlignment="Top" Width="176"/>
   5:          <Labs:Control3 x:Name="mainMenu" HorizontalAlignment="Right" VerticalAlignment="Top"/>
   6:      </Grid>

Donde cada UserControl Control contienen un botón que responde al evento MouseLeftButtonUp.

¿Qué ocurre si migramos esta aplicación a la versión final de silverlight? Pues ocurre que no ocurre nada, es decir, por mucho que apretemos el botón izquierdo del ratón sobre el botón, contenido en cada control, no ocurre nada.

El por qué lo tenemos en el tipo de panel que contiene la imagen y los tres controles de usuario. ¿No veis que falte algo? Pues sí, no están definidas las filas ni las columnas. Otro de los problemas de la Beta 2 en cuenta a permisividad. Por tanto añadiendo la definición de filas y columnas y definición que parte del Grid ocupa cada objeto, el código fuente resultante y funcional seria el siguiente:

   1:      <Grid x:Name="LayoutRoot">
   2:          <Grid.RowDefinitions>
   3:              <RowDefinition Height="100"/>
   4:              <RowDefinition Height="*"/>
   5:          </Grid.RowDefinitions>
   6:          <Grid.ColumnDefinitions>
   7:              <ColumnDefinition Width="180"/>
   8:              <ColumnDefinition Width="*"/>
   9:          </Grid.ColumnDefinitions>
  10:          <Image Margin="0,0,0,0" Source="Images/background.jpg" Stretch="Fill" 
                         Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Grid.ColumnSpan="2"/>

11: <Labs:Control1 HorizontalAlignment="Stretch" VerticalAlignment="Stretch"

Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"/>

  12:          <Labs:Control2 Height="92.719" HorizontalAlignment="Left" Margin="8,8,0,0" 
                         VerticalAlignment="Top" Width="176" Grid.Column="0" Grid.Row="0"/>
  13:          <Labs:Control3 x:Name="mainMenu" HorizontalAlignment="Right" VerticalAlignment="Top" Grid.Row="0" Grid.Column="1"/>
  14:      </Grid>

Ahora si que funcionan nuestros botones :)





Silverlight Beta2: Crossdomain

clock June 15, 2008 15:53 by author Fernando

Hasta la salida de la Beta 2 de Silverlight, cuando queríamos con la Beta 1 realizar una llamada un Servicio Web o WCF sabíamos que debíamos de colorar los ficheros Crossdomain.xml o ClientAccessPolicy.xml en el raíz del Sitio Web donde estuviese el Servicio a consumir por Silverlight. Silverlight por defecto irá a buscar el fichero ClientAccessPolicy.xml y sino lo encuentra buscará el Crossdomain.xml

Si hacemos pruebas desde Silverlight Beta2, nos encontraremos que aun teniendo estos ficheros, recibimos el siguiente error depurando:

SLBeta2WS

El formato del fichero ClientAccessPolicy.xml que teníamos hasta ahora con el que conseguíamos que funcionase era:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from>
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Pero para esta versión necesitamos realizar un sutil cambio en el fichero:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Ahora si que funciona nuestro Silverlight.





Search


Windows Live Alerts

Calendar

<<  September 2010  >>
SuMoTuWeThFrSa
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Sign in