Silverlight ImageButton UserControl
user-controls silverlight-2-rc0 (2)
Creo que esto ayudará. ¡Lo hizo por mí!
http://www.nikhilk.net/Silverlight-Effects-In-Depth.aspx
En su lugar, use ImageSource. Tipo de EG (ImageSource), etc.
Estoy comenzando con Silverlight (2 RC0) y parece que no puedo hacer que lo siguiente funcione. Quiero crear un botón de imagen simple para el control del usuario.
Mi xaml para el control del usuario es el siguiente:
<Button>
<Button.Template>
<ControlTemplate>
<Image Source="{TemplateBinding ImageSource}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" />
</ControlTemplate>
</Button.Template>
</Button>
El código detrás es el siguiente:
public partial class ImageButtonUserControl : UserControl
{
public ImageButtonUserControl()
{
InitializeComponent();
}
public Image Source
{
get { return base.GetValue(SourceProperty) as Image; }
set { base.SetValue(SourceProperty, value); }
}
public static readonly DependencyProperty SourceProperty =
DependencyProperty.Register("SourceProperty", typeof(Image), typeof(ImageButtonUserControl),null);
}
Quiero ser capaz de crear dinámicamente los ImageButtons y rellenarlos en un contenedor como WrapPanel: supongamos que ya tenemos una imagen llamada "imagen":
ImageButtonUserControl imageButton = new ImageButtonUserControl();
imageButton.Source = image;
this.thumbnailStackPanel.Children.Add(imageButton);
¿Qué debo hacer para que se muestre la imagen? Supongo que tengo que hacer algo con DataContext, pero no estoy muy seguro de qué o dónde.
Gracias por cualquier ayuda
Puede obtener un ImageButton fácilmente con sólo presionar un botón común para que no requiera un UserControl. Suponiendo que Button.Content será ImageSource. La Plantilla de Control del Botón será:
<ControlTemplate x:Key="btn_template">
<Image Source="{TemplateBinding Content}" />
</ControlTemplate>
Y el uso como ItemsControl con colección de URL como ItemsSource, puede agregar WrapPanel como el Panel de elementos. El valor predeterminado será StackPanel si no especifica uno.
<DataTemplate x:Key="dataTemplate">
<Button Template="{StaticResource btn_template}" Content="{Binding}"/>
</DataTemplate>
<ItemsControl ItemsSource="{Binding UrlCollection}" ItemsTemplate="{StaticResource dataTemplate}"/>