想要尽快启动和运行吗?跟着作者马上行动!
注意:如果您要查找示例应用程序,请下载源代码并查看"示例"文件夹。
以下说明将设置一个最小骨架项目。
- 自动选项
- .NET Framework
注意:如果项目对 NuGet 包使用包引用,或者使用的是 VS2013 或更早版本,则此操作将不起作用。请改为按照下面的"手动选项"部分操作。
如果您不熟悉 Stylet(并且您运行的是 VS2015 或更高版本),这是最简单的入门方法。
打开 Visual Studio,然后创建一个新的WPF Application项目
打开"NuGet"(右键单击项目 ->管理 NuGet 包"),搜索“Stylet.Start”,然后安装该包。
这将为您提供一个工作框架项目。
安装完成后,卸载 Stylet.Start。
祝您编码愉快!
- .NET Core
对于 .NET Core 项目,最快的入门方法是使用 Stylet 的模板。
打开要在其中创建新项目的命令窗口,然后使用以下命令安装 Stylet 模板:
dotnet new -i Stylet.Templates
然后使用以下命令创建新项目:
dotnet new stylet -o MyStyletProject
- 手动选项
如果您不想使用该包,而希望创建自己的框架项目,请按照本节中的说明进行操作。
打开 Visual Studio,然后创建一个新的WPF Application项目,
打开"NuGet"(右键单击项目 ->管理 NuGet 包"),然后安装Stylet包。
首先,删除MainWindow.xaml和MainWindow.xaml.cs ,您并不需要它们。
接下来,您将需要一个根视图和一个 ViewModel。视图必须是Window,但没有其他限制。
<Window x:Class="Stylet.Samples.Hello.RootView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<TextBlock>Hello, World</TextBlock>
</Window>
ViewModel如下:
public class RootViewModel
{
}
接下来,您将需要一个引导程序。现在,您不需要任何特殊的东西 - 只需要一些东西来识别您的 RootViewModel。稍后,你将能够在此处配置 IoC 容器以及其他应用程序级内容。
public class Bootstrapper : Bootstrapper<RootViewModel>
{
}
最后,您需要将 Stylet 添加到App.xaml的资源中,并确定为您在上面创建的引导程序。
它应该看起来像这样:
<Application x:Class="Stylet.Samples.Hello.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:local="clr-namespace:Stylet.Samples.Hello">
<Application.Resources>
<s:ApplicationLoader>
<s:ApplicationLoader.Bootstrapper>
<local:Bootstrapper/>
</s:ApplicationLoader.Bootstrapper>
</s:ApplicationLoader>
</Application.Resources>
</Application>
就是这样!运行它,你会得到一个带有"Hello World"的窗口。
- 应用程序加载器
值得注意的是,上面是一个资源字典子类。这允许将Stylet加载到内置资源中。您也可以选择不加载 Stylet 的资源,如下所示:
<s:ApplicationLoader>
<s:ApplicationLoader LoadStyletResources="False">
...
</s:ApplicationLoader>
如果您想将自己的资源/资源词典添加到应用程序中,最简单的方法是这样的:
<Application.Resources>
<s:ApplicationLoader>
<s:ApplicationLoader.Bootstrapper>
<local:Bootstrapper/>
</s:ApplicationLoader.Bootstrapper>
<Style x:Key="MyResourceKey">
...
</Style>
<s:ApplicationLoader.MergedDictionaries>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
</s:ApplicationLoader.MergedDictionaries>
</s:ApplicationLoader>
</Application.Resources>
如果对上面的配置感到不爽,也可以这样做:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<s:ApplicationLoader>
<s:ApplicationLoader.Bootstrapper>
<local:Bootstrapper/>
</s:ApplicationLoader.Bootstrapper>
</s:ApplicationLoader>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="MyResourceKey">
...
</Style>
</ResourceDictionary>
</Application.Resources>