AABBbaby

导航

DevExpress Blazor UI v24.1新版亮点:表单布局、富文本编辑器全新升级

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。

DevExpress Blazor控件目前已经升级到v24.1版本了,此版本文件管理器、表单布局、富文本编辑器等控件全新升级,欢迎下载最新组件体验!

DevExpress技术交流群11:749942875      欢迎一起进群讨论

List Box(列表框)
全新的搜索和过滤API

DevExpress Blazor List Box(列表框)引入了新的API,允许您将其连接到外部搜索/过滤UI元素:

DevExpress Blazor UI v24.1产品图集
全新的滚动API

下面的新API允许您滚动到一个特定的列表框项:

日期编辑和时间编辑
支持DateOnly和TimeOnly

DevExpress Blazor Date Edit 和 Time Edit组件现在分别支持DateOnly和TimeOnly值,所有编辑器的特性——包括掩码、格式化API和验证,现在都可以在这些新数据类型下正常工作了!

文件管理
全新的上传外观

DevExpress Blazor Upload(上传)组件的文件列表具有改进的外观和样式,为了使列表更易于理解和视觉紧凑,我们删除了常见的进度条、调整和重新排列UI元素、更新图标,并在某些操作按钮中添加文本。

DevExpress Blazor UI v24.1产品图集
表单布局
项目说明模板

新的DxFormLayoutItem.CaptionTemplate属性允许您在每个LayoutItem标题附近设置图标、按钮、链接或其他元素。

Razor

<DxFormLayoutItem>
<CaptionTemplate>
<div class="email-caption">
<label for="contactEmail">Email</label>
<DxButton CssClass="info-icon-btn"
IconCssClass="info-icon text-info"
RenderStyle="@ButtonRenderStyle.None"
Click="() => IsInfoOpen = !IsInfoOpen" />
<DxFlyout @bind-IsOpen=@IsInfoOpen
PositionTarget=".info-icon-btn"
PreventCloseOnPositionTargetClick="true"
Width="240">
Email must contain the company's domain name.
</DxFlyout>
</div>
</CaptionTemplate>
<Template>
<DxTextBox @bind-Text="@Email" InputId="contactEmail"/>
</Template>
</DxFormLayoutItem>
DevExpress Blazor UI v24.1产品图集
富文本编辑器
全新的表格API

在v24.1中,DevExpress Rich Text Editor for Blazor允许您在运行时修改表格布局、装饰和结构。

Razor

<DxRichEdit @ref="@richEdit" />
@code {
DxRichEdit richEdit { get; set; }
@* ... *@
try {
@* ... *@
var columnCount = 4;
var rowCount = 5;
richEdit.DocumentAPI.BeginUpdate();
await richEdit.DocumentAPI.Tables.CreateAsync(0, columnCount, rowCount);
for (int i = 0; i < rowCount; i++)
for (int j = 0; j < columnCount; j++) {
var myTable = await richEdit.DocumentAPI.Tables.GetAsync(0);
var cellPosition = myTable.Rows[i].Cells[j].Interval.Start;
await richEdit.DocumentAPI.AddTextAsync(cellPosition, "Row=" + (i + 1) + ",Column=" + (j + 1));
}
richEdit.DocumentAPI.EndUpdate();
@* ... *@
}
catch (OperationCanceledException e) {
@* ... *@
}
}
HTML导出/导入

DevExpress Rich Text Editor for Blazor现在支持HTML格式的文档导入/导出,您可以在主子文档中添加HTML标记(AddHtmlAsync方法重载),获取主子文档的HTML文本和标记(GetHtmlAsync方法重载),并将文档内容下载到HTML格式的文件中。

自定义上下文菜单

v24.1为DevExpress Blazor富文本编辑器引入了扩展的UI自定义选项,现在可以自定义组件的上下文菜单和相关的子菜单。处理CustomizeContextMenu事件:

  • 添加或删除内置菜单项
  • 添加自定义菜单项
  • 自定义项目外观/操作

在v24.1中,您还可以使用ContextMenuEnabled 属性控制上下文菜单的可见性。

Razor

<DxRichEdit CustomizeContextMenu=OnCustomizeContextMenu />

@code {
void OnCustomizeContextMenu(IContextMenuItemCollection items) {
if (selection.Intervals[0].Length > 0) {
var span = await selection.ActiveSubDocument.GetTextSpanAsync(selection.Intervals[0]);
textToSearch = span.Text.Trim();
}
else
textToSearch = null;
var searchItem = items.AddCustomItem(0, "Google Search...", async () => {
var url = String.Format("https://www.google.com/search?q={0}", HttpUtility.UrlEncode(textToSearch));
await JSRuntime.InvokeVoidAsync("open", url, "_blank");
});
searchItem.Enabled = !string.IsNullOrEmpty(textToSearch);
searchItem.IconCssClass = "search-icon";
items.Remove(RichEditContextMenuItemNames.CutSelection);
items.Remove(RichEditContextMenuItemNames.CopySelection);
items.Remove(RichEditContextMenuItemNames.Paste);
var clipboardItem = items.AddCustomItem(1, "Clipboard");
clipboardItem.BeginGroup = true;
clipboardItem.Items.Add(RichEditContextMenuItemNames.CutSelection);
clipboardItem.Items.Add(RichEditContextMenuItemNames.CopySelection);
clipboardItem.Items.Add(RichEditContextMenuItemNames.Paste);
}
}

posted on 2024-12-09 10:00  AABBbaby  阅读(6)  评论(0编辑  收藏  举报