BLOB 编辑器
BLOB (Binary Large OBject,二进制大对象) 数据是大文本块 (称为备注数据)、图像、声音等。 一般而言,BLOB 是未翻译字节的序列。 用户负责解释 BLOB 的内容。
XtraEditors 库提供了两种编辑器来呈现和编辑 BLOB 数据: ImageEdit 和 MemoExEdit。 这些编辑器被设计用于在弹出窗口中显示图像和大文本数据。 尽管可以使用下拉编辑器,但您可能会更喜欢使用 PictureEdit 和 MemoEdit 控件来直接在控件区域内显示图像/文本。
ImageEdit
图像编辑器的 repository 项对象 (RepositoryItemImageEdit) 提供了许多用于定制编辑器的属性和事件。 例如,RepositoryItemImageEdit.ShowMenu 属性定义了内嵌图像编辑上下文菜单是否供最终用户使用。
RepositoryItemImageEdit.SizeMode 属性控制图像如何与下拉窗口相适应 (图像是否被拉伸或裁剪)。
MemoExEdit
MemoExEdit 控件与 MemoEdit 类似。 这两个编辑器都允许以多行显示和编辑大文本块。
提供编辑器的特定设置的 repository 项由 RepositoryItemMemoExEdit 类表示。 例如, RepositoryItemMemoExEdit.AcceptsReturn 和 RepositoryItemMemoExEdit.AcceptsTab 属性指明是否允许最终用户使用 ENTER 和 TAB 键输入回车换行符和跳格符。 RepositoryItemMemoExEdit.WordWrap 属性指明文本折行功能是否可用。 要让滚动条可用,则使用 RepositoryItemMemoExEdit.ScrollBars 属性。
BLOB 编辑器的公共属性
ImageEdit 和 MemoExEdit 编辑器都派生于相同的基类 (BlobBaseEdit)。 它们的 repository 项也有相同的祖先 (RepositoryItemBlobBaseEdit)。 这些基础类声明了 BLOB 编辑器的公共设置。 本小节对这些设置作出简要说明。
在默认情况下,ImageEdit 和 MemoExEdit 的编辑框都显示预定义图标来指明编辑器是否包含数据。
ImageEdit | MemoExEdit | |
---|---|---|
编辑器包含数据 | ||
编辑器不包含数据 |
可以使用 RepositoryItemBlobBaseEdit.Images 属性来提供表示空白和填充状态的自定义图标。 要执行此任务,则创建一个 ImageList 组件,并把两个图标添加到其中。 第一个图标对应于填充状态。 最后,把该图像列表指派到 RepositoryItemBlobBaseEdit.Images 属性。
下面的示例代码展示了如何为 ImageEdit 控件提供自定义图标。
C# | 复制代码 |
---|---|
//Create ImageList and add two images ImageList list = new ImageList(); list.Images.Add(Image.FromFile("Image.bmp")); list.Images.Add(Image.FromFile("ImageEmpty.bmp")); //Supply the image list imageEdit1.Properties.Images = list; |
Visual Basic | 复制代码 |
---|---|
'Create ImageList and add two images Dim list As ImageList = New ImageList() list.Images.Add(Image.FromFile("Image.bmp")) list.Images.Add(Image.FromFile("ImageEmpty.bmp")) 'Supply the image list imageEdit1.Properties.Images = list |
ImageEdit 和 MemoExEdit 控件的自定义图标示例如下所示:
ImageEdit | MemoExEdit | |
---|---|---|
编辑器包含数据 | ||
编辑器不包含数据 |
仅当 RepositoryItemBlobBaseEdit.ShowIcon 属性值设置为 true 时才使用图标。 如果此属性被设置为 false,则空 MemoExEdit 编辑器显示一个空白的编辑框。 如果编辑器包含文本,则编辑框显示文本的第一行。 ImageEdit 编辑器则显示适当的“(Picture)”和“(Empty)”字符串。
ImageEdit | MemoExEdit | |
---|---|---|
编辑器包含数据 | ||
编辑器不包含数据 |
使用 RepositoryItemBlobBaseEdit.PopupSizeable 属性来指明是否允许最终用户改变弹出窗口的大小。 如果设置此属性为 true,则下拉窗口将显示一个大小调整手柄。 改变弹出窗口的大小之后,在重新打开弹出窗口时使用改变后的大小。 可以通过 RepositoryItemBlobBaseEdit.PopupStartSize 属性定义弹出窗口的初始大小。