using (FileStream fs = new FileStream("UnitFile/Report2.xaml", FileMode.Open))
{
rootElement = (FrameworkElement)XamlReader.Load(fs);
}

在用XamlReader.Load时,报错。

Report2.xaml文件的内容如下:

<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Style="{DynamicResource BorderEditStyle}">
<WrapPanel Style="{StaticResource WrapPanelEditStyle}">
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="名称"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="型号"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="制单人"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="制单日期"/>
<DatePicker Style="{StaticResource DateEditStyle}"/>
</StackPanel> <StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="计划数量"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="合格数量"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="报废数量"/>
<TextBox Style="{StaticResource TextEditStyle}"/>
</StackPanel>
<StackPanel Style="{StaticResource StackPanelEditStyle}">
<Label Style="{StaticResource LableEditStyle}" Content="返修数量111"/>
<DatePicker Style="{StaticResource DateEditStyle}"/>
</StackPanel>
</WrapPanel>
</Border>
<Button Height="25" Width="50" Grid.Row="1" Content="test" Command="{Binding AddCommand}"/>
<DataGrid Grid.Row="2" ItemsSource="{Binding list}" AutoGenerateColumns="False"
> <DataGrid.Columns>
<DataGridCheckBoxColumn Header="选择"
Binding="{Binding FIsChecked}"/>
<DataGridTextColumn Header="名称" Binding="{Binding FName}"/> <DataGridTextColumn Header="出生年月" Binding="{Binding FBirth}"/>
<DataGridTextColumn Header="家庭住址" Binding="{Binding FAddress}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>

查了下资料说需要添加一些引用。

我也不知道需要添加哪几个引用。于是我就用如下代码将上面的界面导出来

using (FileStream fs = new FileStream(
System.IO.Path.Combine(Environment.CurrentDirectory, "saved.xaml"),
FileMode.Create, FileAccess.Write))
{
XamlWriter.Save(mainCanvas, fs);//mainCanvas为你的grid的Name
fs.Close();
}

导出的结果如下

于是我就将这几个引用添加到Report2.xaml中。再通过XamlReader.Load()方法就可以成功加载了。

WPF XamlObjectWriterException:无法创建未知类型"Grid"的更多相关文章

  1. WPF 中动态创建和删除控件

    原文:WPF 中动态创建和删除控件 动态创建控件 1.容器控件.RegisterName("Name",要注册的控件)   //注册控件 2.容器控件.FindName(" ...

  2. WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。

    原文:WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...

  3. java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量

    package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...

  4. 创建 MIME 类型////////////zzz

    用 Apache 创建 MIME 类型 在 Apache 里, MIME 类型和文件扩展名之间的映射是被存放在配置文件 "apache根目录/conf/mime.types" 里的 ...

  5. 基于Andoird 4.2.2的Account Manager源代码分析学习:创建选定类型的系统帐号

    AccountManager.addAccount() public AccountManagerFuture<Bundle> addAccount(final String accoun ...

  6. MSIL实用指南-创建枚举类型

    创建枚举类型比较简单,主要使用moduleBuilder.DefineEnum 和enumBuilder.DefineLiteral. 第一步:创建 EnumBuilder 创建 EnumBuilde ...

  7. 根据dateFormatter创建NSDate类型数据

    根据dateFormatter 2000-01-01 创建NSDate类型数据 NSDateFormatter *dateFormatter = [NSDate shareDateFormatter] ...

  8. WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数

    本来运行的好好的webAPI 接口突然报了个 :“尝试创建“testController”类型的控制器时出错.请确保控制器具有无参数公共构造函数” 错误.耗了半宿最终解决了, 原因: api控制器中引 ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十九):MessageHandler 的未知类型消息处理

    这是<微信开发深度解析:微信公众号.小程序高效开发秘籍>出版之后写的第一篇微信相关的文章.从这一篇开始,将介绍第一版出版之后添加或修改的功能,或者对书上内容需要做的补充. MP v14.8 ...

随机推荐

  1. 配置mysql环境变量

    配置mysql环境变量(非必要) 说明:给mysql配置环境变量后我们就可以在cmd里运行mysql(开启.停止等操作) 1. 和其实环境变量的配置方法一样,我们打开环境变量配置窗口(组合键win+P ...

  2. shell脚本实现tomcat进程—查、杀、启

    #!/bin/bash#获取XXX项目进程IDXXXpid=`ps -ef | grep XXX | grep -v grep | awk '{print $2}'` echo "XXX项目 ...

  3. .NET 同步 异步 委托

    1.定义委托: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Sy ...

  4. 现象级AR营销助力“口碑双十二”,蚂蚁特工在全国数万商户掀起“AR捉四宝”

    领取阅读奖励金 今年双十二,全国人民吃喝玩乐放飞自我,嗨出了新纪元.除了见证你国人民的财力,这个“双十二”还诞生了教科书级的“AR营销”.无论是在口碑商户门口,还是在各大购物广场,都能看到举着手机,正 ...

  5. Windows下python3安装pip管理包(转贴)

    方法有两种: 请参考:http://www.pip-installer.org/en/latest/installing.html#prerequisites 1.通过setuptools安装 安装s ...

  6. cglib动态代理代码示例

    cglib动态代理代码示例 引用包cglib-xxx.jar 非Maven项目还需要手动引用包asm-xxx.jar 业务类(不需要定义接口) cglib代理类(实现接口MethodIntercept ...

  7. .net core 一个避免跨站请求的中间件

    前提: 前几天看到博客园首页中有这么一篇文章:跨站请求伪造(CSRF),刚好前段时间自己一直也在搞这个东西,后来觉得每次在form表单里添加一个@Html.AntiForgeryToken,在对应的方 ...

  8. placement new

    placement new就是把原本new做的两步工作分开来.第一步你自己分配内存,第二步你调用类的构造函数在自己分配的内存上构建新的对象. class Foo { float f; public: ...

  9. js 倒计时功能,获取当前时间的年月日,时分秒

    一.实现当前时间到指定截止时间的倒计时功能 <html> <head> <title>TEST</title> </head> <bo ...

  10. Linux mmap函数简介

    一.简介 Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明: 头文件: ...