有许多相关问题可以提示如何正确地向Visual Studio中的WinRT / C ++项目中添加新的XAML Page
,但是没有一个特定于C ++ / WinRT。 (即here,here和here。)
此外,尽管WinRT / C ++是对C ++ / CX的重大改进(我认为),但是几乎所有Microsoft文档都使用C#或C ++ / CX作为示例。
更糟糕的是,自发布之日起,当您使用Visual Studio中的“添加项目”功能添加XAML Page
时,它将在C ++ / CX中创建页面甚至适用于WinRT / C ++项目。
最后,(到目前为止)微软没有提供任何有关如何向WinRT / C ++项目中添加新XAML Page
的文档,至少我可以找到(请参阅第一段)。 / p>
gh。
为了节省其他人的时间,我整理了提示,并成功地向Visual Studio WinRT / C ++项目中正确添加了新的XAML Page
。
我问并回答了一个问题:如何在Visual Studio的WinRT / C ++项目中添加新的XAML Page
?
附录
我错过了明显的事情!事实证明,您可以使用Visual Studio轻松添加WinRT / C ++ XAML Page
。尽管尽我所能(仔细)看。
(简单)正确的答案在答案2中给出。
但是我会继续回答这个问题-以防万一其他人误入歧途,并且找不到在WinRT / C ++中添加XAML Page
的选项在Visual Studio中。
答案 0 :(得分:1)
我错过了明显的事情!
事实证明,您可以使用Visual Studio轻松地添加WinRT / C ++ XAML页面。
尽管尽我所能(仔细地)仔细地研究了Visual Studio编辑器中的选项,但我错过了WinRT / C ++项目的XAML模板的位置。
为了完整起见,我将粘贴屏幕截图。
这里是如何向现有WinRT / C ++项目中添加新的XAML Page
,详细说明了这一点。
步骤1 :右键单击解决方案,然后浏览菜单/子菜单至Add New Item...
不要选择XAML节点。
...保持选中的ROOT NODE:
如果在Add New Item...
条目中选择“ XAML”节点,则外观如下:
底线
我损失了几个小时,因为我认为在Add New Item...
对话框中单击“ XAML”节点是一个好主意,以便仅过滤与XAML相关的模板。
不幸的是,该组件的WinRT / C ++版本的XAML模板没有出现在该列表中(截至我撰写本文之日)。您必须单击根节点才能看到它。
如果对任何人有用,我将保留其他答案。
但是此答案描述了向WinRT / C ++项目中添加新XAML Page
的(简单)正确方法-如预期那样,使用Visual Studio编辑器Add New Item...
。
答案 1 :(得分:0)
为了节省其他人的时间,我整理了提示,并成功地向Visual Studio WinRT / C ++项目中正确添加了新的XAML Page
。
这是答案。
图片价值数千个单词,所以这里是步骤。
.vcxproj
和.vcxproj.filters
文件MainPage.xaml
及其关联的.idl
和代码隐藏文件。在以下步骤中,我们将创建一个新的XAML页面及其关联文件,名为LoginPage
。LoginPage
实际创建文件-我们将在最后的步骤中完成。只需暂时编辑.vcxproj
和.vcxproj.filters
文件。MainPage
的引用的块,并将其修改为读取LoginPage
。.vcxproj
文件 第1块:LoginPage.cpp
-LoginPage.xaml
关系的代码隐藏依赖项
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
第2块:LoginPage.h
-LoginPage.xaml
关系的代码隐藏依赖项
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
第3块:让Visual Studio知道将设计器用于LoginPage.xaml
(我认为!)
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
第2块:LoginPage.idl
-LoginPage.xaml
关系的代码隐藏依赖项
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
.vcxproj.filters
文件 第1块:告诉Visual Studio在解决方案资源管理器中包含LoginPage.xaml
(我认为!)
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
第2块:告诉Visual Studio在解决方案资源管理器中包含LoginPage.idl
(我认为!)
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
第3块:告诉Visual Studio编译LoginPage.cpp
作为该项目的一部分(我认为!)
我们从这里开始:
...修改块以为LoginPage
添加一个部分,结果是:
.vcxproj
和.vcxproj.filters
文件的编辑。保存并关闭它们。LoginPage
文件,即可创建所有四个MainPage
文件。我们从项目中的以下文件开始:
...在复制了4个(突出显示的)MainPage
文件并将其重命名为LoginPage
之后,我们得到了以下文件:
对于最后一步,您必须实际上在文本编辑器(不是Visual Studio)中打开四个新LoginPage
文件 (不是Visual Studio)并进行搜索-并替换为文本MainPage
,并替换为LoginPage
。
在搜索中, DO 大写字母匹配,但 DO 不匹配'whole-word only'(即,某些数据类型具有{{1 }}作为名称的一部分,例如MainPage
,并且还必须搜索并替换它们。)
我不会粘贴实际源代码文件的屏幕截图。
一旦在记下的四个文件中将所有出现的MainPageT
替换为MainPage
,请保存并关闭文件。
在Visual Studio中打开解决方案,并注意其优点:
Solution Explorer现在显示我们的LoginPage
文件以及正确嵌套的代码隐藏文件:
...并按F7键构建项目,构建成功:
...并且它也成功运行-与以前的操作相同。
这是因为,当然,您还没有使用LoginPage.xaml
完成任何操作-它没有出现在用户界面中-但可以在代码中使用,而我让你从这里拿走!
我很感激Microsoft发布了出色的WinRT / C ++功能-至少可以说……令人沮丧……到目前为止,还没有办法添加新的据我所知,使用Visual Studio标准工具(例如LoginPage
选项)将XAML Page
应用于WinRT / C ++项目。更令人沮丧的是,也没有任何文档解释如何做(我可以找到)。
我当然希望我的问题和答案很快变得无关紧要,并且微软希望重新添加工具和文档。将新的XAML Add Item
添加到Visual Studio中现有的WinRT / C ++项目中。
还是我弄错了?也许已经可以轻松地做到这一点,而我只是找不到它?
我希望这对某人有帮助,以防万一!