namespace HStation.WinFrmUI { public partial class GenerateXhsProjectFileWizardPage : DevExpress.XtraEditors.XtraUserControl, IWizardPage { public GenerateXhsProjectFileWizardPage() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); } /// /// 状态改变事件 /// public event Action PageStateChangedEvent; private bool _isInitialize = false;//是否初始化 private bool _importResult = false;//导入结果 private ImportXhsProjectFileViewModel _vm = null;//操作对象 private class ListItemWithColor { public string Text { get; set; } public Color Color { get; set; } public override string ToString() { return null; } } /// /// /// public async void InitialPage(ImportXhsProjectFileViewModel vm) { _vm = vm; _isInitialize = false; _importResult = false; _importResult = await ImportXhsProjectFileHelper.Import(vm, (msg, color) => { ListItemWithColor itemWithColor = new ListItemWithColor { Text = msg, Color = color }; this.listBoxControl1.Items.Add(itemWithColor); }, (max, current) => { this.progressBarControl1.Properties.Maximum = max; this.progressBarControl1.Position = current; //替代方案 // this.progressBarControl1.Properties.Step = current; // this.progressBarControl1.PerformStep(); }); if (!_importResult) { this.progressBarControl1.Position = 0; this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } _isInitialize = true; this.PageStateChangedEvent?.Invoke(); } /// /// 允许上一步 /// public bool AllowPrev { get { if (_isInitialize) { if (!_importResult) { return true; } } return false; } } /// /// 允许下一步 /// public bool AllowNext { get { if (_isInitialize) { if (_importResult) { return true; } } return false; } } /// /// 允许取消 /// public bool AllowCancel { get { if (_isInitialize) { if (!_importResult) { return true; } } return false; } } /// /// 允许完成 /// public bool AllowComplete { get { return false; } } /// /// 能否上一步 /// /// public bool CanPrev() { return this.AllowPrev; } /// /// 能否下一步 /// public bool CanNext() { return this.AllowNext; } /// /// 能否取消 /// public bool CanCancel() { return this.AllowCancel; } /// /// 能否完成 /// public bool CanComplete() { return false; } private void listBoxControl1_DrawItem(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e) { // 获取当前项目的索引 int index = e.Index; // 检查是否是有效的项目索引 if (index >= 0) { // 获取当前项目 ListItemWithColor item = (ListItemWithColor)listBoxControl1.Items[index]; // 设置字体和颜色 Font font = new Font("Arial", 15); Brush brush = new SolidBrush(item.Color); // 绘制文本 e.Graphics.DrawString(item.Text, font, brush, e.Bounds); } } } }