我尝试使用ResourceDictionary,Window和一些NuGet-Packages创建一个小型WPF模板项目。 我找到了这本手册:https://shahbhavya47.wordpress.com/2015/03/11/create-visual-studio-project-template-with-pre-installed-nuget-packages-using-vs-sdk/
它工作得很好,但是一旦我添加WPF-UserControls,我就会遇到一些奇怪的行为:
我是否在这件事上做了一些可怕的错误,或者是否有一些指南专注于使用WPF的模板以及如何使用它们?
提前致谢!
的Matthias
答案 0 :(得分:1)
以下是我如何运作的步骤:
<OutputType>
更改为 WinExe ,将<RequiredFrameworkVerison>
更改为4.0 <PropertyGroup>
,以便VS可以将项目识别为WPF应用程序。<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<ItemGroup>
添加到 .csproj 文件中,以确保在从模板生成的项目中正确标记文件: <ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ProjectItem>
元素: <ProjectItem ReplaceParameters="true" TargetFileName="App.xaml">App.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml">MainWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="App.xaml.cs">App.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml.cs">MainWindow.xaml.cs</ProjectItem>
ReplaceParameters="true"
可以将Textmarks包含在4个添加的文件中。我在App.xaml.cs中使用了$safeprojectname$
:
public partial class App : Application
{
private string field = "$safeprojectname$";
}
并在MainWindow.xaml中:
<Grid>
<TextBlock>$safeprojectname$</TextBlock>
</Grid>
在此之后,构建模板项目会在bin / Debug文件夹中生成zip文件,该文件按预期工作,包括替换两个文件中的$safeprojectname$
个实例。
请记住,模板项目的主要目标是构建模板,因此,例如,从该项目打开 .xaml 文件将显示无效标记设计师。从普通的WPF项目开始,然后将其文件和 .csproj 文件的相关部分复制到模板项目中要容易得多。