使用C#代码和未经编译的XAML创建WPF应用程序

    1. 新建一个WPF项目,将App.Xaml和MainWindow.xaml删除

    2. 未经编译的XAML文件内容如下

      1. <DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
      2. <Button Name="Button1" Margin="60">Please Click Me!</Button>
      3. </DockPanel>
    3. C#代码如下 ```java using System.IO; using System.Windows; using System.Windows.Controls; using System.Windows.Markup;

    namespace 项目7 { ///

    /// MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { private Button btn; public MainWindow() { InitializeComponent(); }

    1. public MainWindow(string xamlFile)
    2. {
    3. //设置窗体
    4. this.Width = 800;
    5. Height = 450;
    6. Left = Top = 150;
    7. Title = "Dynamically Loaded XAML";
    8. //从外部文件获取XAML的内容
    9. DependencyObject rootElement;
    10. using (FileStream fs = new FileStream(xamlFile, FileMode.Open))
    11. {
    12. rootElement = XamlReader.Load(fs) as DependencyObject;
    13. }
    14. Content = rootElement;
    15. btn = LogicalTreeHelper.FindLogicalNode(rootElement, "Button1") as Button;
    16. btn.Click += btn_Click;
    17. }
    18. void btn_Click(object sender, RoutedEventArgs e)
    19. {
    20. btn.Content = "Thank you!";
    21. }
    22. }

    }

    1. 4. 再新建个Program.cs类,作为启动程序:
    2. ```java
    3. using System;
    4. using System.Windows;
    5. namespace 项目7 {
    6. class Program:Application {
    7. [STAThread]
    8. static void Main()
    9. {
    10. Program app=new Program();
    11. app.MainWindow=new MainWindow("Window1.xaml");
    12. app.MainWindow.ShowDialog();
    13. }
    14. }
    15. }
    • 项目包含的类
      使用C#代码和未经编译的XAML创建WPF应用程序 - 图1

    • 运行后的效果

    使用C#代码和未经编译的XAML创建WPF应用程序 - 图2

    • 点击后的效果

    使用C#代码和未经编译的XAML创建WPF应用程序 - 图3