我的用户控件的xaml如下:
<button> <button.Template> <ControlTemplate> <Image Source="{TemplateBinding ImageSource}" WIDth="{TemplateBinding WIDth}" Height="{TemplateBinding Height}" /> </ControlTemplate> </button.Template> </button>
背后的代码如下:
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); }
我希望能够动态创建Imagebuttons并将它们填充到像WrapPanel这样的容器中:
假设我们已经有一个名为“image”的图像:
ImagebuttonUserControl imagebutton = new ImagebuttonUserControl();imagebutton.source = image;this.thumbnailStackPanel.Children.Add(imagebutton);
我需要做什么才能显示图像?我假设我需要对DataContext做一些事情,但我不太清楚什么或在哪里.
谢谢你的帮助
解决方法 您可以通过模板化普通button轻松获得Imagebutton,这样您根本不需要UserControl.假设button.Content将是ImageSource. button的ControlTemplate将是:<ControlTemplate x:Key="btn_template"> <Image Source="{TemplateBinding Content}" /> </ControlTemplate>
作为ItemsControl使用URL集合作为其ItemsSource,您可以添加WrapPanel作为ItemPanel.如果您没有指定,则默认为StackPanel.
<DataTemplate x:Key="dataTemplate"> <button Template="{StaticResource btn_template}" Content="{Binding}"/></DataTemplate> <ItemsControl ItemsSource="{Binding UrlCollection}" Itemstemplate="{StaticResource dataTemplate}"/>总结
以上是内存溢出为你收集整理的Silverlight ImageButton UserControl全部内容,希望文章能够帮你解决Silverlight ImageButton UserControl所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)