C# 创建“一个”的最佳方法是什么;联系人列表“;在银光中?
我正在尝试创建一个Silverlight应用程序,它可以提取我的Flickr联系人和照片。我想让他们表现得“漂亮”。我打算创建一个控件,在其名称旁边显示用户及其图像。我希望每个用户都被一一列出。大概是这样的:C# 创建“一个”的最佳方法是什么;联系人列表“;在银光中?,c#,silverlight,C#,Silverlight,我正在尝试创建一个Silverlight应用程序,它可以提取我的Flickr联系人和照片。我想让他们表现得“漂亮”。我打算创建一个控件,在其名称旁边显示用户及其图像。我希望每个用户都被一一列出。大概是这样的: ---------------------------- User Name: <Photo> <Photo> <Photo> <Photo> ---------------------------- User Name
----------------------------
User Name: <Photo> <Photo>
<Photo> <Photo>
----------------------------
User Name: <Photo> <Photo>
<Photo> <Photo>
----------------------------
User Name: <Photo> <Photo>
<Photo> <Photo>
----------------------------
User Name: <Photo> <Photo>
<Photo> <Photo>
----------------------------
User Name: <Photo> <Photo>
<Photo> <Photo>
----------------------------
----------------------------
用户名:
----------------------------
用户名:
----------------------------
用户名:
----------------------------
用户名:
----------------------------
用户名:
----------------------------
我希望能够动态创建它,并有一个滚动条出现,如果需要的话。(因此用户可以上下滚动)
创建这样的东西的最佳方法是什么?是否有我应该遵循的控制或技术?这对Silverlight和Flicker可能会有帮助
至于设置用户控件的样式,您看过Silverlight和Flicker上的?吗
至于设置用户控件的样式,您看到了吗?您想要一个列表框。事实上,多个嵌套的列表框 首先,将数据放入一个可以很好地与Silverlight配合使用的结构中(我在这里假设Silverlight2)。为此,我会使用
ObservableCollection<Contact>
observedcollection
其中Contact是表示一个联系人的类。那个班应该有一个
ObservableCollection<FlickrPhoto>
observedcollection
作为一种财产
下面是XAML的结构。您可能希望将模板移到资源中,或者创建一个usercontrol来保存每个列表项
<!-- needs the SilverlightToolkit for WrapPanel -->
<!-- xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" -->
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding UserName}"/>
<ListBox
Grid.Column="1"
ItemsSource="{Binding FlickrPhotos}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<tk:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Photo}" Width="80"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
注:
- 这段代码只是一个非常粗略的示例
- 您需要禁用列表框上的水平滚动条以强制WrapPanel进行包装
- 您需要将外部列表框(或祖先控件)的DataContext设置为联系人集合
- 您想要一个列表框。事实上,多个嵌套的列表框
首先,将数据放入一个可以很好地与Silverlight配合使用的结构中(我在这里假设Silverlight2)。为此,我会使用
ObservableCollection<Contact>
observedcollection
其中Contact是表示一个联系人的类。那个班应该有一个
ObservableCollection<FlickrPhoto>
observedcollection
作为一种财产
下面是XAML的结构。您可能希望将模板移到资源中,或者创建一个usercontrol来保存每个列表项
<!-- needs the SilverlightToolkit for WrapPanel -->
<!-- xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" -->
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding UserName}"/>
<ListBox
Grid.Column="1"
ItemsSource="{Binding FlickrPhotos}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<tk:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Photo}" Width="80"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
注:
- 这段代码只是一个非常粗略的示例
- 您需要禁用列表框上的水平滚动条以强制WrapPanel进行包装
- 您需要将外部列表框(或祖先控件)的DataContext设置为联系人集合
<ListBox x:Name="Photos">
<ListBox.ItemTemplate>
<DataTemplate>
<YOUR_ITEM_LAYOUT_HERE />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
其中,
被一个项目(用户名和四张照片)所需的实际布局替换
希望有帮助。如果您需要更多信息,只需留下评论。一旦您了解了模板,在Silverlight中这种布局很容易 如果您曾经使用过ASP.net,可以考虑使用类固醇repeater(或者在最新版本中使用ListView) 基本上,您需要的是一个列表框,该列表框用您特定的“模板”(用户名和四张照片)显示每个项目 因此,假设您将listbox的ItemsSource属性设置为包含UserName属性以及Photo1到Photo4的对象集合:
<ListBox x:Name="Photos">
<ListBox.ItemTemplate>
<DataTemplate>
<YOUR_ITEM_LAYOUT_HERE />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
其中,
被一个项目(用户名和四张照片)所需的实际布局替换
希望有帮助。如果您需要更多信息,请留下评论。谢谢您的链接,但我已经知道如何访问Flickr API和样式控件。我需要帮助“复制我的控件X倍,并有一个滚动条通过它们查看”。正在寻找一个好的技术来实现这一点。感谢您的链接,但我已经知道如何访问Flickr API和样式控件。我需要帮助“复制我的控件X倍,并有一个滚动条通过它们查看”。寻找一个好的技术来做到这一点。