zoukankan      html  css  js  c++  java
  • WPF 纯代码生成界面(不使用XAML)

        对于编写 WPF 应用程序,只是用代码进行开发而不使用任何 XAML 不是常见的方式(但是仍然完全支持)。只使用代码进行开发的明显缺点是,有可能会使用编写 WPF 应用程序成为极端乏味的工作。 WPF 控件没有包含参数化的构造函数,因此即使为窗体添加一个简单的按钮也需要编写几行代码。只使用代码进行开发的一个潜在的优点是可以随意定制应用程序。例如,可以根据数据记录中的信息生成一个充满输入控件的窗体,或者可以根据当前的用户酌情添加或替换控件。需要的所有内容只不过是少量的条件逻辑。相比之下,如果使用XAML文档,它们只能作为固定不变的资源嵌入到程序集中。

        以下代码用于生成一个普通的窗体,该窗体包含一个按钮盒一个事件处理程序(如下图)。当创建窗口时,构造函数调用一个 InitializeComponent() 方法,该方法实例化并配置这个按钮和窗体,并连接事件处理程序。

    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Markup;
    
    namespace _1003_CodeOnlyWindow
    {
        public class Window1:Window
        {
            private Button button1;
    
            public Window1()
            {
                InitializeComponent();
            }
    
            void InitializeComponent()
            {
                //配置当前窗体
                this.Width = this.Height = 285;
                this.Left = this.Top = 100;
                this.Title = "Code-Only Window";
    
                //创建一个面板放置按钮
                DockPanel panel = new DockPanel();
    
                //创建按钮
                button1 = new Button();
                button1.Content = "请点我";
                button1.Margin = new Thickness(30);
    
                //注册按钮点击事件
                button1.Click += button1_Click;
    
                //将按钮放置到面板中
                IAddChild container = panel;
                container.AddChild(button1);
    
                //将面板放置到窗体中
                container = this;
                container.AddChild(panel);
            }
    
            void button1_Click(object sender, RoutedEventArgs e)
            {
                button1.Content = "Thank you!";
            }
        }
    }

        从概念上讲,在本示例中的程序更像传统的 Winform 程序的一个窗体,它继承自Window基类,并未每个控件添加一个私有成员变量。为清晰起见,这个类在一个专门的 InitializeComponent() 方法中执行初始化操作。

        为启动这个应用程序,可在 Main() 方法中添加如下代码:

        public class Program:Application
        {
            [STAThread()]
            static void Main()
            {
                Program app = new Program();
                app.MainWindow = new Window1();
                app.MainWindow.ShowDialog();
            }
        }

    源码下载:http://files.cnblogs.com/andrew-blog/1003_CodeOnlyWindow.rar

    使用工具:VS2012 

    参考:http://www.wxzzz.com/?id=127

  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/andrew-blog/p/WPF_CodeOnly_XAML.html
Copyright © 2011-2022 走看看