Visual Basic (Declaration) | |
---|---|
Public Interface IImageListItem |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As IImageListItem |
C# | |
---|---|
public interface IImageListItem |
C++/CLI | |
---|---|
public interface class IImageListItem |
This examples shows how to create your own class that implements IImageListItem and bind a collection of these classes to an ImageList control.
Visual Basic | Copy Code |
---|---|
Private Class MyImageListItem : Implements IImageListItem #Region "IImageListItem Members" Private _background As Brush Public Property Background() As Brush Implements IImageListItem.Background Get Return _background End Get Set(ByVal value As Brush) _background = value End Set End Property Private _foreground As Brush Public Property Foreground() As Brush Implements IImageListItem.Foreground Get Return _foreground End Get Set(ByVal value As Brush) _foreground = value End Set End Property Private _height As Double = 100 Public Property Height() As Double Implements IImageListItem.Height Get Return _height End Get Set(ByVal value As Double) _height = value End Set End Property Private _imageSize As Size Public Property ImageSize() As Size Implements IImageListItem.ImageSize Get Return _imageSize End Get Set(ByVal value As Size) _imageSize = value End Set End Property Private _source As ImageSource Public Property Source() As ImageSource Implements IImageListItem.Source Get Return _source End Get Set(ByVal value As ImageSource) _source = value End Set End Property Private _text As String Public Property Text() As String Implements IImageListItem.Text Get Return _text End Get Set(ByVal value As String) _text = value End Set End Property Private _uri As Uri Public Property Uri() As Uri Implements IImageListItem.Uri Get Return _uri End Get Set(ByVal value As Uri) _uri = value End Set End Property Private _width As Double = 100 Public Property Width() As Double Implements IImageListItem.Width Get Return _width End Get Set(ByVal value As Double) _width = value End Set End Property #End Region End Class Private Class MyWindow1 : Inherits Window Public imageList As ImageList Public Sub New(ByVal title As String) title = title ' Set the size of the window Width = 400 Height = 200 ' Create a new ImageList control. imageList = New ImageList() imageList.Width = Double.NaN imageList.Height = Double.NaN imageList.Background = New RadialGradientBrush(Colors.DarkGray, Colors.LightGray) imageList.BorderThickness = New Thickness(5, 5, 5, 5) ' Create three items Dim imagesPath As String = LEAD_VARS.ImagesDir Dim items As ObservableCollection(Of IImageListItem) = New ObservableCollection(Of IImageListItem)() For i As Integer = 0 To 2 ' Load the image Dim index As Integer = i + 1 Dim imageFileName As String = Path.Combine(imagesPath, "ImageProcessingDemo\Image" & index.ToString() & ".jpg") Dim item As MyImageListItem = New MyImageListItem() item.Source = New BitmapImage(New Uri(imageFileName)) item.Text = "item" & index.ToString() item.Uri = New Uri(imageFileName) ' Add the item to the image list items.Add(item) Next i imageList.ItemsSource = items ' Add the ImageList to the Window. Content = imageList End Sub End Class Public Sub ImageList_IImageListItem(ByVal title As String) Dim window As MyWindow1 = New MyWindow1(title) window.ShowDialog() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
class MyImageListItem : IImageListItem { #region IImageListItem Members Brush _background; public Brush Background { get { return _background; } set { _background = value; } } Brush _foreground; public Brush Foreground { get { return _foreground; } set { _foreground = value; } } double _height = 100; public double Height { get { return _height; } set { _height = value; } } Size _imageSize; public Size ImageSize { get { return _imageSize; } set { _imageSize = value; } } ImageSource _source; public ImageSource Source { get { return _source; } set { _source = value; } } string _text; public string Text { get { return _text; } set { _text = value; } } Uri _uri; public Uri Uri { get { return _uri; } set { _uri = value; } } double _width = 100; public double Width { get { return _width; } set { _width = value; } } #endregion } class MyWindow1 : Window { public ImageList imageList; public MyWindow1(string title) { Title = title; // Set the size of the window Width = 400; Height = 200; // Create a new ImageList control. imageList = new ImageList(); imageList.Width = Double.NaN; imageList.Height = Double.NaN; imageList.Background = new RadialGradientBrush(Colors.DarkGray, Colors.LightGray); imageList.BorderThickness = new Thickness(5, 5, 5, 5); // Create three items string imagesPath = LEAD_VARS.ImagesDir; ObservableCollection<IImageListItem> items = new ObservableCollection<IImageListItem>(); for (int i = 0; i < 3; i++) { // Load the image int index = i + 1; string imageFileName = Path.Combine(imagesPath, @"ImageProcessingDemo\Image" + index.ToString() + ".jpg"); MyImageListItem item = new MyImageListItem(); item.Source = new BitmapImage(new Uri(imageFileName)); item.Text = "item" + index.ToString(); item.Uri = new Uri(imageFileName); // Add the item to the image list items.Add(item); } imageList.ItemsSource = items; // Add the ImageList to the Window. Content = imageList; } } public void ImageList_IImageListItem(string title) { MyWindow1 window = new MyWindow1(title); window.ShowDialog(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; } |
SilverlightCSharp | Copy Code |
---|---|
class MyImageListItem : IImageListItem { #region IImageListItem Members Brush _background; public Brush Background { get { return _background; } set { _background = value; } } Brush _foreground; public Brush Foreground { get { return _foreground; } set { _foreground = value; } } double _height = 100; public double Height { get { return _height; } set { _height = value; } } Size _imageSize; public Size ImageSize { get { return _imageSize; } set { _imageSize = value; } } ImageSource _source; public ImageSource Source { get { return _source; } set { _source = value; } } string _text; public string Text { get { return _text; } set { _text = value; } } Uri _uri; public Uri Uri { get { return _uri; } set { _uri = value; } } double _width = 100; public double Width { get { return _width; } set { _width = value; } } #endregion } class MyWindow1 : ChildWindow { public ImageList imageList; public MyWindow1(string title) { Title = title; // Set the size of the window Width = 400; Height = 200; // Create a new ImageList control. imageList = new ImageList(); imageList.Width = Double.NaN; imageList.Height = Double.NaN; imageList.Background = new RadialGradientBrush(Colors.DarkGray, Colors.LightGray); imageList.BorderThickness = new Thickness(5, 5, 5, 5); // Create three items string imagesPath = LeadtoolsExamples.Common.ImagesPath.Path; ObservableCollection<IImageListItem> items = new ObservableCollection<IImageListItem>(); for (int i = 0; i < 3; i++) { // Load the image int index = i + 1; string imageFileName = imagesPath + "Image" + index.ToString() + ".jpg"; MyImageListItem item = new MyImageListItem(); item.Source = new BitmapImage(new Uri(imageFileName)); item.Text = "item" + index.ToString(); item.Uri = new Uri(imageFileName); // Add the item to the image list items.Add(item); } imageList.ItemsSource = items; // Add the ImageList to the Window. Content = imageList; } } public void ImageList_IImageListItem(string title) { MyWindow1 window = new MyWindow1(title); window.Show(); } |
SilverlightVB | Copy Code |
---|---|
Private Class MyImageListItem : Implements IImageListItem #Region "IImageListItem Members" Private _background As Brush Public Property Background() As Brush Implements IImageListItem.Background Get Return _background End Get Set(ByVal value As Brush) _background = value End Set End Property Private _foreground As Brush Public Property Foreground() As Brush Implements IImageListItem.Foreground Get Return _foreground End Get Set(ByVal value As Brush) _foreground = value End Set End Property Private _height As Double = 100 Public Property Height() As Double Implements IImageListItem.Height Get Return _height End Get Set(ByVal value As Double) _height = value End Set End Property Private _imageSize As Size Public Property ImageSize() As Size Implements IImageListItem.ImageSize Get Return _imageSize End Get Set(ByVal value As Size) _imageSize = value End Set End Property Private _source As ImageSource Public Property Source() As ImageSource Implements IImageListItem.Source Get Return _source End Get Set(ByVal value As ImageSource) _source = value End Set End Property Private _text As String Public Property Text() As String Implements IImageListItem.Text Get Return _text End Get Set(ByVal value As String) _text = value End Set End Property Private _uri As Uri Public Property Uri() As Uri Implements IImageListItem.Uri Get Return _uri End Get Set(ByVal value As Uri) _uri = value End Set End Property Private _width As Double = 100 Public Property Width() As Double Implements IImageListItem.Width Get Return _width End Get Set(ByVal value As Double) _width = value End Set End Property #End Region End Class Private Class MyWindow1 : Inherits ChildWindow Public imageList As ImageList Public Sub New(ByVal title As String) Title = title ' Set the size of the window Width = 400 Height = 200 ' Create a new ImageList control. imageList = New ImageList() imageList.Width = Double.NaN imageList.Height = Double.NaN imageList.Background = New RadialGradientBrush(Colors.DarkGray, Colors.LightGray) imageList.BorderThickness = New Thickness(5, 5, 5, 5) ' Create three items Dim imagesPath As String = LeadtoolsExamples.Common.ImagesPath.Path Dim items As ObservableCollection(Of IImageListItem) = New ObservableCollection(Of IImageListItem)() For i As Integer = 0 To 2 ' Load the image Dim index As Integer = i + 1 Dim imageFileName As String = imagesPath & "Image" & index.ToString() & ".jpg" Dim item As MyImageListItem = New MyImageListItem() item.Source = New BitmapImage(New Uri(imageFileName)) item.Text = "item" & index.ToString() item.Uri = New Uri(imageFileName) ' Add the item to the image list items.Add(item) Next i imageList.ItemsSource = items ' Add the ImageList to the Window. Content = imageList End Sub End Class Public Sub ImageList_IImageListItem(ByVal title As String) Dim window As MyWindow1 = New MyWindow1(title) window.Show() End Sub |
The IImageListItem interface defines the minimum properties required to for an item class that can be used with the ImageList control. The following classes implement this interface and are implemented by LEADTOOLS:
- ImageListItem: For adding items that contain a WPF/Silverlight System.Windows.Media.ImageSource.
- RasterImageListItem: For adding items that contain a LEADTOOLS Leadtools.RasterImage.
You can define your own classes that implement IImageListItem and use them with the LEADTOOLS ImageList control. The ImageList control derives from the WPF/Silverlight System.Windows.Controls.ItemsControl class and implements the the standard WPF binding using a ObservableCollection<IImageListItem> ItemsSource through the ImageList.ItemsSource property. Using binding, you can easily create a collection of your own image list items and add them to the control through code or markup. The example below shows you how to do that.
When using your own class that implements IImageListItem, the following items properties of the ImageList control will be used:
-
ImageList.ItemSize (will bind to IImageListItem.Width and IImageListItem.Height)
-
ImageList.ItemImageSize (will bind to IImageListItem.ImageSize
-
ImageList.ItemBackground (will bind to IImageListItem.Background
-
ImageList.ItemForeground (will bind to IImageListItem.Foreground
The following item properties will not be used:
-
ImageList.ItemSelectedBackground. instead, the default System.Windows.Controls.ListBox selection style will be used
-
ImageList.ItemSelectedForeground. instead, the default System.Windows.Controls.ListBox selection style will be used
Target Platforms: Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family