Silverlight Beta2 to RTM: OnClick Event Failed

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 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *