gpt4 book ai didi

Silverlight 图像按钮用户控件

转载 作者:行者123 更新时间:2023-12-02 21:50:20 27 4
gpt4 key购买 nike

我刚刚开始使用 Silverlight (2 RC0),似乎无法让以下内容正常工作。我想创建一个简单的图像按钮用户控件。

我的用户控件的 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。按钮的 ControlTemplate 将为:

 <ControlTemplate x:Key="btn_template">         
<Image Source="{TemplateBinding Content}" />
</ControlTemplate>

作为以 URL 集合作为 ItemsSource 的 ItemsControl 的用法,您可以添加 WrapPanel 作为 ItemPanel。如果您未指定,则默认为 StackPanel。

<DataTemplate x:Key="dataTemplate">
<Button Template="{StaticResource btn_template}" Content="{Binding}"/>
</DataTemplate>


<ItemsControl ItemsSource="{Binding UrlCollection}" ItemsTemplate="{StaticResource dataTemplate}"/>

关于Silverlight 图像按钮用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com