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例子。

  • 相关阅读:
    jar命令打jar包
    kafka的一些参数
    fastdfs-nginx-module-master的一些奇怪的特点
    nginx 禁止恶意域名解析
    tcpdump抓包vrrp
    gitlab提交代码
    [Data]Segment Tree
    [Data]FHQ treap
    [Data]带修改的主席树[树状数组套主席树]
    [Data]可持久化线段树-主席树
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/8473685.html
Copyright © 2011-2022 走看看