表示这个很强大

字典加反射,搞定多window的switch

    public partial class MainWindow : Window
{
Dictionary<string, Type> WindowList = new Dictionary<string, Type>();
public MainWindow()
{
InitializeComponent();
this.AddHandler(Button.ClickEvent, new RoutedEventHandler(Btn_Click));
LoadDic();
} void LoadDic()
{
Type decoratorType = typeof(DecoratorWindow);
Type viewboxType = typeof(ViewboxWindow);
Type valueType = typeof(ValueWindow);
Type lineType = typeof(LineWindow);
Type winStartType = typeof(WinStartWindow);
Type mp3Type = typeof(Mp3Window);
Type socketType = typeof(SocketWindow);
Type tagType = typeof(TagWindow);
Type txtType = typeof(TXTWindow);
Type QQType = typeof(QQWindow);
Type transformType = typeof(TransformWindow);
Type image3DWallType = typeof(Image3DWallWindow);
Type transType = typeof(TransWindow);
Type weatherType = typeof(WeatherWindow);
Type datagridType = typeof(DatagridWindow);
Type versionType = typeof(VersionWindow);
WindowList.Add("Decorator", decoratorType);
WindowList.Add("Viewbox", viewboxType);
WindowList.Add("Value", valueType);
WindowList.Add("Line", lineType);
WindowList.Add("WinStart", winStartType);
WindowList.Add("Mp3", mp3Type);
WindowList.Add("Socket", socketType);
WindowList.Add("Tag", tagType);
WindowList.Add("TXT", txtType);
WindowList.Add("QQ", QQType);
WindowList.Add("Transform", transformType);
WindowList.Add("Image3DWall", image3DWallType);
WindowList.Add("Trans", transType);
WindowList.Add("Weather", weatherType);
WindowList.Add("Datagrid", datagridType);
WindowList.Add("Version", versionType);
}
private void Btn_Click(object sender, RoutedEventArgs e)
{
Window window = (Window) Activator.CreateInstance(WindowList[(e.OriginalSource as Button).Tag.ToString()]);
window.ShowDialog();
}
}
}
    public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.AddHandler(Button.ClickEvent,new RoutedEventHandler(Button_Click));
} private void Button_Click(object sender, RoutedEventArgs e)
{
if ((e.OriginalSource as Button).Tag.ToString() == null) ;
else
{
          Window window = WindowList[(e.OriginalSource as Button).Tag.ToString()];  
switch ((e.OriginalSource as Button).Tag.ToString())
{
case "Decorator":
window = new DecoratorWindow();
break;
case "Viewbox":
window = new ViewboxWindow();
break;
case "Value":
window = new ValueWindow();
break;
case "Line":
window = new LineWindow();
break;
case "WinStart":
window = new WinStartWindow();
break;
case "Mp3":
window = new Mp3Window();
break;
case "Socket":
window = new SocketWindow();
break;
case "Tag":
window = new TagWindow();
break;
case "TXT":
window = new TXTWindow();
break;
case "QQ":
window = new QQWindow();
break;
case "Transform":
window = new TransformWindow();
break;
case "Image3DWall":
window = new Image3DWallWindow();
break;
case "Trans":
window Trans = new TransWindow();
break;
case "Weather":
window = new WeatherWindow();
break;
case "Datagrid":
window = new DatagridWindow();
break;
default:
break;
}
          window.ShowDialog();
}
}
}
}

最新文章

  1. UICollectionViewCell定制Button
  2. WPF/Silverlight 下的图片局部放大
  3. PHP基础OOP(一)
  4. Apple Watch已向微信开放WatchKit接口?
  5. C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)
  6. 克隆选择算法-python实现
  7. Oracle- UPDATE FROM讲解
  8. JAVA 跑马灯文字效果
  9. umount: /home: device is busy
  10. 洛谷 U4704 函数
  11. Problem D: 栈小游戏
  12. mysqldump 备份导出数据排除某张表
  13. Dynamic Rankings ZOJ - 2112(主席树+树状数组)
  14. Mybatis 源码简述
  15. 解决多人开发时使用window.onload的覆盖问题
  16. [转帖]Mysql 开启跟踪的一个方法
  17. oracle用sql 语句如何向表中插入时间?
  18. 20145335郝昊《java程序设计》第9周学习总结
  19. Andrew Ng机器学习编程作业:Support Vector Machines
  20. Maven导入jar包

热门文章

  1. 基于visual Studio2013解决面试题之0309左移递减序列搜索
  2. cocos2d-x学习日志(10) --射击游戏(喵星战争)
  3. ios点击产生波纹效果
  4. ym——安卓巴士总结了近百个Android优秀开源项
  5. Coins (poj 1742 &amp;amp;&amp;amp; hdu 2844 DP)
  6. 关于PHP的内置服务器的使用
  7. 使用Seam Framework + JBoss 5.0 开发第一个Web应用 - 简单投票程序
  8. (读书笔记).NET大局观-.NET语言(1)
  9. 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题
  10. FZU2179(数位dp)