当前位置: 首页 > 编程语言 > C#

在程序运行期间编译-执行XAML分享

时间:2023-04-10 17:29:08 C#

在程序运行期间编译/执行XAML我想创建一个WPF应用程序,它从数据库中检索XAML代码并显示检索到的代码。假设数据库返回以下代码:如何在运行时执行此代码(或者可能只是mainGrid的内容)?XamlReader类专用于此目的。使用其Load方法动态加载xaml。编辑-这是您可能感兴趣的链接。这就是我解决问题的方法:我有3个文件MainWindow.xaml、MainWindow.xaml.cs和wpftest.csproj。MainWindow.xaml:MainWindow.xaml.cs命名空间wpftest{使用System.Windows;//////MainWindow.xaml的交互逻辑///publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}privatevoidButtonBase_OnClick(objectsender,RoutedEventArgse){MessageBox.Show("Helloworld","doesitwork?");}}}wpftest.csproj(注意:这个文件很大,大部分内容都是不必要的。您可以按照本指南创建更简化的解决方案:演练:从头开始创建MSBuild项目文件)调试AnyCPU{E3FBAE41-AF7E-4C7E-A69E-ADAEAEE76FA2}库属性wpftestwpftestv4.5512{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}4AnyCPUtruefullfalsebinDebugDEBUG;TRACEprompt4AnyCPUpdbonlytruebinReleaseTRACEprompt44.0MSBuild:CompileDesignerMainWindow.xaml代码片段将编译和解码代码:,创建一个dll文件,通过反射使用创建的dll。这发生在(全部)应用程序运行期间。特别感谢doug提出的这个stackoverflow问题。以上就是C#学习教程:编译/执行程序运行过程中XAML共享的所有内容。对象发送者,RoutedEventArgse){varglobalProperties=newDictionary();varbuildRequest=newBuildRequestData(@"C:Usersjbuwpftestwpftest.csproj",globalProperties,null,newstring[]{"Build"},null);varpc=newProjectCollection();varresult=BuildManager.DefaultBuildManager.Build(newBuildParameters(pc),buildRequest);程序集assembly=Assembly.LoadFrom(@"C:UsersjbuwpftestbinDebugwpftest.dll");varinstance=assembly.CreateInstance("wpftest.MainWindow")asWindow;if(instance!=null){instance.Show();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: