ApeForms | Dialog組件
前言
ApeForms一款基于WinForm實(shí)現(xiàn)的開源免費(fèi)商用的UI庫,其中提供了一套便于用戶交互的臨時(shí)對(duì)話框組件(Dialog),可用于快速創(chuàng)建開發(fā)中常見的交互對(duì)話框,例如:消息框、提示框、輸入框、單選框、多選框等。
ApeFree.ApeDialogs并不是一個(gè)包含Dialog實(shí)現(xiàn)的UI庫,而是一套Dialog標(biāo)準(zhǔn)(提供了一套臨時(shí)彈出對(duì)話框的實(shí)現(xiàn)標(biāo)準(zhǔn))。 Dialog是界面開發(fā)過程中必不可少的組件,無論是桌面開發(fā)、Web前端開發(fā)、移動(dòng)端開發(fā),甚至命令行應(yīng)用程序中的一次“Yes or No”的輸入都可以看做是一次Dialog彈框。
示例
準(zhǔn)備步驟
如下所示,創(chuàng)建Dialog提供器:
ApeFormsDialogProvider provider = DialogFactory.Factory.GetApeFormsDialogProvider();
消息對(duì)話框 MessageDialog
var dialog = provider.CreateMessageDialog(s =>
{
// 是否可取消
s.Cancelable = true;
// 修改確認(rèn)鍵文本
s.ConfirmOption.Text = "知道了";
// 修改Dialog窗體尺寸
s.DialogSize = new Size(400, 250);
// 修改標(biāo)題名
s.Title = tbTitle.Text;
// 修改文本內(nèi)容
s.Content = tbContent.Text;
});
dialog.Show();
輸入對(duì)話框 InputDialog
var dialog = provider.CreateInputDialog(s =>
{
// 標(biāo)題文本
s.Title = tbTitle.Text;
// 消息文本
s.Content = tbContent.Text;
// 輸入框默認(rèn)文本
s.DefaultText = "You can set the default text in the input box by using the 'DefaultText' property.";
// 是否可取消
s.Cancelable = true;
// 是否允許輸入為空
s.AllowEmpty = false;
// 輸入文本最大長(zhǎng)度
s.MaximumLength = 200;
// 輸入文本最小長(zhǎng)度
s.MinimumLength = 6;
// 是否多行
s.IsMultiline = false;
// 確認(rèn)按鈕文本
s.ConfirmOption.Text = "Confirm(確定)";
// 取消按鈕文本
s.CancelOption.Text = "Cancel(取消)";
// 清空按鈕文本
s.ClearOption.Text = "Clear(清空)";
});
dialog.Show();
if (dialog.Result.IsCancel)
{
Toast.Show("取消輸入");
}
else
{
Toast.Show($"輸入內(nèi)容為:{dialog.Result.Data}");
}
多行輸入對(duì)話框 MultiLineDialog
var dialog = provider.CreateInputDialog(s =>
{
// 標(biāo)題文本
s.Title = tbTitle.Text;
// 消息文本
s.Content = tbContent.Text;
// 輸入框默認(rèn)文本
s.DefaultText = "You can set the default text in the input box by using the 'DefaultText' property.";
// 是否可取消
s.Cancelable = true;
// 是否允許輸入為空
s.AllowEmpty = false;
// 輸入文本最大長(zhǎng)度
s.MaximumLength = 200;
// 輸入文本最小長(zhǎng)度
s.MinimumLength = 6;
// 是否多行
s.IsMultiline = true;
// 確認(rèn)按鈕文本
s.ConfirmOption.Text = "Confirm(確定)";
// 取消按鈕文本
s.CancelOption.Text = "Cancel(取消)";
// 清空按鈕文本
s.ClearOption.Text = "Clear(清空)";
});
dialog.Show();
if (dialog.Result.IsCancel)
{
Toast.Show("取消輸入");
}
else
{
Toast.Show($"輸入內(nèi)容為:{dialog.Result.Data}");
}
密碼輸入對(duì)話框PasswordDialog
var dialog = provider.CreatePasswordDialog(s =>
{
s.Title = tbTitle.Text;
s.Content = tbContent.Text + $"\r\n提示:密碼至少要[6]位";
s.PasswordChar = '●';
s.PrecheckResult = password => password != null && password.Length >= 6;
});
dialog.Show();
if (dialog.Result.IsCancel)
{
Toast.Show("取消輸入");
}
else
{
Toast.Show($"輸入密碼為:{dialog.Result.Data}");
}
提示對(duì)話框 PromptDialog
var dialog = provider.CreatePromptDialog(s =>
{
// 標(biāo)題文本
s.Title = tbTitle.Text;
// 消息文本
s.Content = tbContent.Text;
// 積極選項(xiàng)文本
s.PositiveOption.Text = "Yes";
// 消極選項(xiàng)文本
s.NegativeOption.Text = "No";
}, null);
dialog.Show();
if (dialog.Result.Data)
{
Toast.Show("結(jié)果:積極選項(xiàng)");
}
else
{
Toast.Show("結(jié)果:消極選項(xiàng)");
}
單選對(duì)話框 SelectionDialog
var dialog = provider.CreateSelectionDialog(students, null, s =>
{
// 標(biāo)題文本
s.Title = tbTitle.Text;
// 消息文本
s.Content = tbContent.Text;
// 設(shè)置預(yù)檢查回調(diào)
s.PrecheckResult = item =>
{
var b = item != null;
if (!b)
{
Toast.Show("至少要選一項(xiàng)哦!", 2000, null, ToastMode.Reuse);
}
return b;
};
s.ItemDisplayTextConvertCallback = stu => $"{stu.Name} ({stu.Description})";
});
dialog.Show();
if (dialog.Result.IsCancel)
{
Toast.Show("取消選擇");
}
else
{
Toast.Show($"結(jié)果:{dialog.Result.Data.Name} , {dialog.Result.Data.Description}");
}
示例類型及數(shù)據(jù):
class Student
{
public Student(string name, string description)
{
Name = name;
Description = description;
}
public string Name { get; set; }
public string Description { get; set; }
}
Student[] students = new Student[] {
new Student("張三","一年級(jí)"),
new Student("李四","三年級(jí)"),
new Student("王二","五年級(jí)"),
new Student("馬六","五年級(jí)"),
};
多選對(duì)話框 MultipleSelectionDialog
var dialog = provider.CreateMultipleSelectionDialog(students, null, s =>
{
// 標(biāo)題文本
s.Title = tbTitle.Text;
// 消息文本
s.Content = tbContent.Text;
// 設(shè)置預(yù)檢查回調(diào)
s.PrecheckResult = item =>
{
var b = item.Any();
if (!b)
{
Toast.Show("至少要選一項(xiàng)哦!", 2000, null, ToastMode.Reuse);
}
return b;
};
s.ItemDisplayTextConvertCallback = stu => $"{stu.Name} ({stu.Description})";
});
dialog.Show();
if (dialog.Result.IsCancel)
{
Toast.Show("取消選擇");
}
else
{
Toast.Show($"結(jié)果:{string.Join("|", dialog.Result.Data.Select(s => $"{s.Name}({s.Description})"))}");
}
示例數(shù)據(jù)與單選對(duì)話框 SelectionDialog
示例數(shù)據(jù)一致。
UI庫安裝與使用
請(qǐng)參考文章:《ApeForms | WinForm窗體UI美化庫(Metro扁平風(fēng)格)演示與安裝》文章來源:http://www.zghlxwxcb.cn/news/detail-403601.html
獲取示例源碼
ApeForms UI庫源碼地址:https://github.com/ApeFree/ApeFree.ApeForms
ApeForms Demo源碼地址:https://github.com/ApeFree/ApeFree.ApeForms.Demo
下載體驗(yàn)Demo.exe網(wǎng)盤鏈接:https://landriesnidis.lanzouy.com/b011mr7rg 密碼:26fx
加入ApeForms QQ群答疑解惑:929371169
文章來源地址http://www.zghlxwxcb.cn/news/detail-403601.html
到了這里,關(guān)于ApeForms | C# - WinForm臨時(shí)對(duì)話框(消息框、提示框、輸入框、密碼框、單選框、多選框等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!