大佬教程收集整理的这篇文章主要介绍了Prism研究(for WPF & Silverlight)4.从Hello World开始(实战篇),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
相关内容请参见文档P127-147,代码示例参加Quickstarts\ Hello World目录。
1.首先我们要准备Prism框架的6个dll,分别是:
你可以从LIB目录中直接找到这些dll,也可以编译CAL目录中的项目,然后在bin\debug目录下找到它们。将它们复制到一个目录下,以便我们可以在多个项目中方便地进行使用。同时,大家会看到很多xml文件,它们的名称和这些dll是相同的——最好把它们也一起复制过去,这些xml文件是用来在Visual studio中做智能感知(IntelliSence)的。
2.创建SHell
创建一个名为HelloWorld.Desktop 的WPF应用程序。添加对上述所有dll的引用。然后删除默认的Window1.xaml,新建一个SHell.xaml。
3.添加Region
在SHell.xaml中添加对Prism命名空间的引用,如下所示:
删除Grid标签,替换以ItemsControl,并将其命名为MainRegion:
这里cal:regionManager.RegionName是一个依赖属性,我们将它与ItemsControl控件相关联。
<Window x:Class="HelloWorld.Desktop.SHell" xmlns="http://scheR_590_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_590_11845@as.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.codeplex.com/CompositeWPF" title="SHell" Height="300" Width="300"> <ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" /> </Window>
在HelloWorld.Desktop项目中添加一个名为Bootstarpper的类,这里覆写了CreateSHell方法,以创建一个SHell窗体对象并显示:
class Bootstrapper : UnityBootstrapper { protected override DependencyObject CreateSHell() { SHell sHell = new SHell(); sHell.Show(); return sHell; } }
*注:这里要添加对一个命名空间的引用,才能使用UnityBootstrapper:
在App.xaml文件里,删除Application标签中的:StartupUri="Window1.xaml"。在相应的后台文件App.xaml.cs中覆写OnStartup方法:
protected override void OnStartup(StartupEventArgs E) { base.onStartup(E); Bootstrapper bootstrapper = new Bootstrapper(); bootstrapper.Run(); }
6. 创建一个名为HelloWorldModule的类库,添加对Prism类库的其中2个dll的引用:
7.在HelloWorldModule类库中创建一个文件夹,取名为Views,在这个文件夹中创建一个HelloWorldView.xaml,我们为这个xaml添加一个显示HelloWorld的TextBlock:
<UserControl x:Class="HelloWorldModule.Views.HelloWorldView" xmlns="http://scheR_590_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_590_11845@as.microsoft.com/winfx/2006/xaml" > <Grid> <TextBlock Text="Hello World" Foreground="Green" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Calibri" FontSize="24" FontWeight="Bold"></TextBlock> </Grid> </UserControl>
8. 在HelloWorldModule类库中添加一个名为HelloWorldModule的类,它派生自IModule接口,为此我们要实现它的Initialize方法:
public class HelloWorldModule : IModule { private readonly IRegionViewRegistry regionViewRegistry; public HelloWorldModule(IRegionViewRegistry registry) { this.regionViewRegistry = registry; } public void Initialize() { regionViewRegistry.RegisterViewWithRegion("MainRegion",typeof(Views.HelloWorldView)); } }
我们发现,在Initialize方法中,将前面第3步指定的MainRegion与文件夹Views中HelloWorldView类(这是一个xaml)的相关联。
同时,这里提及一句,我们使用了依赖注入(构造函数)的方式,来传递参数regionViewRegistry。
9.返回到HelloWorld.Desktop应用程序中,添加对HelloWorldModule类库的引用。
10.最后,返回到第4步创建的Bootstarpper中,我们还要覆写它的GetModuleCatalog方法,从而找到并加载所指定的模块:
protected override IModuleCatalog GetModuleCatalog() { @H_108_111@moduleCatalog catalog = new @H_108_111@moduleCatalog() .AddModule(typeof(HelloWorldModule.HelloWorldModule)); return catalog; }
*注:这里要添加对一个命名空间的引用,才能使用IModuleCatalog和ModuleCatalog:
补充:
Prism是基于Silverlight 2.0版本的,但是由于它只是一个框架,所以对于当前的Silverlight 3 beta1版本也是适用的;而Prism中自带的几个Silverlight例子,则需要对sln文件进行转换才能打开,这里,我们只关心框架,而不care版本。
以上是大佬教程为你收集整理的Prism研究(for WPF & Silverlight)4.从Hello World开始(实战篇)全部内容,希望文章能够帮你解决Prism研究(for WPF & Silverlight)4.从Hello World开始(实战篇)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。