格式化文本在 UltraWinGrid 中不起作用

FormattedText not working in UltraWinGrid

我正在使用 UltraWinGrid 来显示已执行的操作列表。这最初是一个 webapp,正在转换为 winforms 应用程序,并且操作通常具有 HTML 格式。我已将列设置为使用 FormattedText:

band.Columns["Result"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.FormattedText;

这里唯一的 HTML 标记是粗体和换行符,根据我在网上看到的所有内容,这两者都应该由 FormattedText 单元格呈现。但这是结果:

是否有让 FormattedText 工作的技巧?此样式所依赖的网格的其他一些设置?这些是我在网格上使用的设置:

UltraGridBand band = grd.DisplayLayout.Bands[0];
band.Override.CellDisplayStyle = CellDisplayStyle.FormattedText;
grd.UseOsThemes = DefaultableBoolean.False;
grd.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect;
grd.DisplayLayout.Override.RowSizing = RowSizing.AutoFree;
grd.DisplayLayout.Override.CellMultiLine = DefaultableBoolean.True;
grd.DisplayLayout.ViewStyleBand = ViewStyleBand.Horizontal;
grd.DisplayLayout.Override.SelectTypeCell = SelectType.None;
grd.DisplayLayout.Override.SelectTypeRow = SelectType.Single;
grd.DisplayLayout.Override.AllowAddNew = AllowAddNew.No;
grd.DisplayLayout.Override.AllowDelete = DefaultableBoolean.False;
grd.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.False;
grd.DisplayLayout.Override.ActiveRowAppearance.Reset();
grd.DisplayLayout.Override.ActiveRowCellAppearance.Reset();

如您所见,我什至尝试将整个网格默认为 FormattedText,但结果没有任何变化。为了让事情变得更加混乱,换行符在 same 网格中起作用,但具有不同的项目:

我能看到的唯一区别是第二个示例只有换行符,而第一个示例在同一个单元格中结合了换行符和粗体标记。

我使用您在示例中为网格设置的相同修改创建了一个网格:

this.ultraGrid1.DisplayLayout.Bands[0].Override.CellDisplayStyle = CellDisplayStyle.FormattedText;
this.ultraGrid1.UseOsThemes = DefaultableBoolean.False;
this.ultraGrid1.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect;
this.ultraGrid1.DisplayLayout.Override.RowSizing = RowSizing.AutoFree;
this.ultraGrid1.DisplayLayout.Override.CellMultiLine = DefaultableBoolean.True;
this.ultraGrid1.DisplayLayout.ViewStyleBand = ViewStyleBand.Horizontal;
this.ultraGrid1.DisplayLayout.Override.SelectTypeCell = SelectType.None;
this.ultraGrid1.DisplayLayout.Override.SelectTypeRow = SelectType.Single;
this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No;
this.ultraGrid1.DisplayLayout.Override.AllowDelete = DefaultableBoolean.False;
this.ultraGrid1.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.False;
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.Reset();
this.ultraGrid1.DisplayLayout.Override.ActiveRowCellAppearance.Reset();
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.FormattedText;

这给了我你遇到的相同结果,如下所示:

如您所见,正在提取列文本内的一些 html 标记,例如:<b><i><u><font> 但未正确应用样式。

当我注释掉下面一行时:

this.ultraGrid1.DisplayLayout.Bands[0].Override.CellDisplayStyle = CellDisplayStyle.FormattedText;

然后我的网格会正确呈现,如下所示: