Back to Devexpress

EditingFieldExtensionsWin.RegisterImageCollectionEditor(String, String, IDictionary<String, Image>) Method

windowsforms-devexpress-dot-xtraprinting-dot-preview-dot-editingfieldextensionswin-dot-registerimagecollectioneditor-x28-string-string-idictionary-string-image-x29.md

latest5.5 KB
Original Source

EditingFieldExtensionsWin.RegisterImageCollectionEditor(String, String, IDictionary<String, Image>) Method

Registers an image editor with a collection of predefined named images to be used for changing image content in Print Preview.

Namespace : DevExpress.XtraPrinting.Preview

Assembly : DevExpress.XtraPrinting.v25.2.dll

NuGet Package : DevExpress.Win.Printing

Declaration

csharp
public virtual bool RegisterImageCollectionEditor(
    string name,
    string displayName,
    IDictionary<string, Image> images
)
vb
Public Overridable Function RegisterImageCollectionEditor(
    name As String,
    displayName As String,
    images As IDictionary(Of String, Image)
) As Boolean

Parameters

NameTypeDescription
nameString

The name of the registered image collection editor.

| | displayName | String |

The display name of the registered image collection editor.

| | images | IDictionary<String, Image> |

The editor’s image collection.

|

Returns

TypeDescription
Boolean

true if the image list has been successfully registered; otherwise, false.

|

Remarks

Use this method to register an image editor with a collection of predefined images in the application.

csharp
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using DevExpress.XtraPrinting.Preview;
//...

Dictionary<string, Image> images = new Dictionary<string, Image>();
foreach (var file in Directory.GetFiles("../../Flags/", "*.png")) {
    Image img = Image.FromFile(file);
    if (img != null) {
        string name = Path.GetFileNameWithoutExtension(file);
        images.Add(name, img);
    }
}
EditingFieldExtensionsWin.Instance.RegisterImageCollectionEditor("Nationality", "Nationality", images);
vb
Imports System.Collections.Generic
Imports System.Drawing
Imports System.IO
Imports DevExpress.XtraPrinting.Preview
'...

Private images As New Dictionary(Of String, Image)()
For Each file In Directory.GetFiles("../../Flags/", "*.png")
    Dim img As Image = Image.FromFile(file)
    If img IsNot Nothing Then
        Dim name As String = Path.GetFileNameWithoutExtension(file)
        images.Add(name, img)
    End If
Next file
EditingFieldExtensionsWin.Instance.RegisterImageCollectionEditor("Nationality", "Nationality", images)

To use this editor for image editing in Print Preview, set a XRPictureBox control’s EditOptions | Enabled property to true and the EditOptions | EditorName property - to the registered editor’s name.

Set image edit options in the end-user Report Designer’ Property Grid.

The following sample demonstrates how to do this in code.

csharp
using DevExpress.XtraReports.UI;
//...
XtraReport1 report = new XtraReport1();
XRPictureBox pictureBox = report.Bands["ReportHeader"].FindControl("xrPictureBox1", true) as XRPictureBox;
pictureBox.EditOptions.Enabled = true;
pictureBox.EditOptions.EditorName = "Nationality";
vb
Imports DevExpress.XtraReports.UI
'...
Private report As New XtraReport1()
Private pictureBox As XRPictureBox = TryCast(report.Bands("ReportHeader").FindControl("xrPictureBox1", True), XRPictureBox)
pictureBox.EditOptions.Enabled = True
pictureBox.EditOptions.EditorName = "Nationality"

When an end user clicks the Picture Box in Print Preview, the assigned editor activates. This editor allows end users to choose a predefined image or reset to the initial image.

Note

Use the RegisterImageEditor(String, String, ImageEditorOptions) method instead if you need to add the Brush Options and/or Load Image menu items as well.

See Also

EditingFieldExtensionsWin Class

EditingFieldExtensionsWin Members

DevExpress.XtraPrinting.Preview Namespace