¡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 to RTM: Catastrophic failure

clock October 22, 2008 11:41 by author Fernando

Migrando y migrando aplicaciones, demos y demás que tengo por aqui en Silverlight Beta2 a la versión final, me he encontrado con problemas en tiempo de ejecución con un error que asusta al principio pero que investigando un poco se encuentra el por qué del mismo. El mensaje de error es: Catastrophic failure (Excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED)), el cual lo podemos ver en la siguiente imagen.

Blog2Catastrofico

El problema viene dado en la permisividad que nos daban las versiones Beta de Silverlight, a la hora de añadir elementos al diccionario de recursos de un elemento de tipo FrameworkElement. Es decir, el siguiente código fallaría una vez migrado a Silverlight 2.0:

 

Storyboard Story = new Storyboard();
DoubleAnimation da = new DoubleAnimation();
da.To = -200;
da.Duration = TimeSpan.FromSeconds(20);
Story.Children.Add(da);

LayoutRoot.Resources.Add(null, Story);

 

Y la solución pasa por dar un valor correcto al parámetro key:

 

Storyboard Story = new Storyboard();
DoubleAnimation da = new DoubleAnimation();
da.To = -200;
da.Duration = TimeSpan.FromSeconds(speed);
Story.Children.Add(da);

LayoutRoot.Resources.Add("story", Story);




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