Fiddler插件开发指南(五、全局事件)

一、说明按钮

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、打包预览
全禁结果

系列文章汇总

资源推荐

你可能感兴趣的:(前端,fiddler,c#,wpf,nsis)