一、说明按钮
1、新建AlertUI文件夹,同时新建一个WPF控件,命名为ExplainAlertUI.xaml
2、在GlobalStyle.xaml中新增相关样式
3、在ExplainAlertUI.xaml中引入全局样式文件,同时增加相关元素结构
1、IP字段:填写映射机器的IP地址即可
2、端口字段:非必填,填写则替换为指定端口号,为空则使用请求本身的端口号
3、URL字段:
4、配置示例:
5、映射结果示例:
4、在Tools文件夹中新增AlertTool类,同时添加私有静态方法initWindow
//初始化窗体
private static Window initWindow(string type, int height, int width = 500)
{
Window window = new Window();
//设置宽和高
window.Width = width;
window.Height = height + 30;//状态栏的高度是30
//去掉最小化、最大化按钮
window.ResizeMode = 0;
window.Title = type == "explain" ? "配置说明" : "Host配置";
//设置显示在中间
window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
//返回对应的窗体
return window;
}
5、AlertTool类中添加公有静态方法showExplainAlertUI
//显示说明弹框
public static void showExplainAlertUI(string type)
{
ExplainAlertUI explainAlertUI = new ExplainAlertUI();
//初始化窗体
Window window = initWindow("explain", 450, 700);
//设置window窗体内容
window.Content = explainAlertUI;
//显示窗体
window.ShowDialog();
}
6、在Container类中增加私有方法showExplainAlertUI
#region Alert--事件
//显示说明弹框
private void showExplainAlertUI(object sender, MouseButtonEventArgs e)
{
AlertTool.showExplainAlertUI();
}
#endregion
7、在Container控件中给说明按钮绑定MouseLeftButtonDown事件
8、打包预览
二、新增按钮
1、在AlertUI文件夹中新建一个WPF控件,命名为HostAlertUI.xaml
2、在GlobalStyle.xaml中新增相关样式
3、在HostAlertUI.xaml中引入全局样式文件,同时增加相关元素结构,最后分别设置输入控件的唯一Name为:ip、port、url
4、在HostAlertUI类中增加私有方法addHostRule和inputKeyDown
#region 鼠标点击事件
private void addHostRule(object sender, MouseButtonEventArgs e)
{
string ip = this.ip.Text;
string port = this.port.Text;
string url = this.url.Text;
if (ip.Length == 0)
{
Fiddler.FiddlerApplication.DoNotifyUser("请填写IP", "输入提示");
return;
}
if (url.Length == 0)
{
Fiddler.FiddlerApplication.DoNotifyUser("请填写URL", "输入提示");
return;
}
//添加UI
Main.addHostRule(ip, port, url);
//关闭弹框
(this.Parent as Window).Close();
}
#endregion
#region 输入框按键监听事件
private void inputKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
addHostRule(null, null);
}
}
#endregion
5、给对应输入控件绑定KeyDown事件,确定按钮绑定MouseLeftButtonDown事件
6、AlertTool类增加公有静态方法showHostAlertUI
//显示Host弹框
public static void showHostAlertUI()
{
HostAlertUI hostAlertUI = new HostAlertUI();
//初始化窗体
Window window = initWindow("host", 310);
//设置window窗体内容
window.Content = hostAlertUI;
//自动聚焦
hostAlertUI.ip.Focus();
//显示窗体
window.ShowDialog();
}
7、Container类增加私有方法addHost
//增加Host
private void addHost(object sender, MouseButtonEventArgs e)
{
AlertTool.showHostAlertUI();
}
8、给Container的新增按钮绑定MouseLeftButtonDown事件
9、打包预览
三、全禁按钮
1、Main类增加公有静态方法disabledAllHostFromData
//禁止所有Host规则
public static void disabledAllHostFromData()
{
//遍历更新数据
for (int i = 0, len = mainData.Count; i < len; i++)
{
HostModel item = mainData[i] as HostModel;
//更新数据
item.Enable = false;
}
//重新写入文件
DataTool.writeConfigToFile();
}
2、Container类增加私有方法disabledAllItem
//禁止所有Item
private void disabledAllItem(object sender, MouseButtonEventArgs e)
{
Main.disabledAllHostFromData();
}
3、给Container的新增按钮绑定MouseLeftButtonDown事件
4、打包预览