zoukankan      html  css  js  c++  java
  • Winform中使用WPF控件并动态读取Xaml

    1、添加新项

    2、在构造函数中加入

        public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
                Grid grid = null;
                String xamlFile = @"C:Userszgjsource
    eposWindowsFormsApp1	est.xaml";
                using (FileStream fs = new FileStream(xamlFile, FileMode.Open))
                {
                    grid = (Grid)XamlReader.Load(fs);
                }
                grid1.Children.Add(grid);
            }
        }

    3、test.xaml内容

    <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
            <StackPanel x:Name="test_panel">
                <Button x:Name="but1" Height="25" Width="60">but1</Button>
                <Button x:Name="but2" Height="25" Width="60">but2</Button>
            </StackPanel>
        </Grid>

    4、将usercontrol拖到winform窗体上即可显示

     5、如果test.xaml的根节点为window,需要分离,注意加黑部分。

     /// <summary>
        /// UserControl1.xaml 的交互逻辑
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
                Window window = null;
                String xamlFile = @"C:Userszgjsource
    eposWindowsFormsApp1	est.xaml";
                using (FileStream fs = new FileStream(xamlFile, FileMode.Open))
                {
                    window = (Window)XamlReader.Load(fs);
                }
                Grid grid = (Grid)window.Content;
                DependencyObject parent = grid.Parent;
                if (parent != null)
                {
                    parent.SetValue(ContentPresenter.ContentProperty, null);
                }
                grid1.Children.Add(grid);
            }
        }
    <Window 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="test" Height="300" Width="300">
        <Grid>
            <StackPanel x:Name="test_panel">
                <Button x:Name="but1" Height="25" Width="60">but1</Button>
                <Button x:Name="but2" Height="25" Width="60">but2</Button>
            </StackPanel>
        </Grid>
    </Window>

     源程序在QQ群:616945527,winform加载WPF例子。

  • 相关阅读:
    Nginx系列p5:进程管理(信号)
    Nginx系列p4:进程结构
    one_day_one_linuxCmd---crontab 命令
    Nginx系列p3:实现一个具有缓存功能的反向代理服务器
    Nginx系列p2:重载,热部署,日志分割
    Nginx系列p1:安装
    数据链路层
    物理层习题与真题
    物理层
    计算机网络体系结构习题与真题
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/8473685.html
Copyright © 2011-2022 走看看