• WPF XamlObjectWriterException:无法创建未知类型"Grid"


      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>
    View Code

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

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

    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()方法就可以成功加载了。

  • 相关阅读:
    循环链表版本-----约瑟夫环
    插入排序
    队列的模板
    数据结构-栈-进制转换
    括号匹配
    两个有序链表合成一个有序链表
    希尔排序
    java-MD5-加密
    java使用Test测试接口类
    将将List json 转成List<?>实体
  • 原文地址:https://www.cnblogs.com/czly/p/10121900.html
Copyright © 2020-2023  润新知