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