使用 Windows 8 开发人员预览版,我尝试使用使用内置 Windows Metro 样式模板创建的简单用户控件。到目前为止,我还无法让我的应用程序解析对控件的引用,即使它与引用它的页面位于同一个项目和命名空间中。我只是得到“找不到类型”我查看了“构建”示例,但找不到使用用户控件的示例 C# 项目。有谁知道我在哪里可以找到一个?
问问题
4204 次
3 回答
2
检查http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603
您可以UserControl
通过右键单击您的项目并选择添加/新建项目 (Ctrl+Shift+A) 并从项目模板列表中选择“用户控制”来创建一个。然后命名它并最终得到 XAML,您可以修改它以添加更多 UI,如下所示:
<UserControl
x:Class="Xyzzer.AsyncUI.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="768"
d:DesignWidth="1366">
<Grid
x:Name="LayoutRoot"
Background="#FF0C0C0C">
<Grid
VerticalAlignment="Top"
Height="140">
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="120" />
<ColumnDefinition
Width="*" />
</Grid.ColumnDefinitions>
<Button
x:Name="BackButton"
IsEnabled="False" />
<TextBlock
x:Name="PageTitle"
Text="Some Page!"
Grid.Column="1" />
</Grid>
</Grid>
</UserControl>
和后面的代码是这样的:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
namespace Xyzzer.AsyncUI
{
partial class MainPage
{
public MainPage()
{
InitializeComponent();
}
}
}
然后,您可以在 XAML 中的其他地方使用该控件,如下所示:
<xa:MainPage
xmlns:xa="using:Xyzzer.AsyncUI" />
于 2012-02-12T15:49:29.013 回答
1
即使用户控件位于同一命名空间中,您也必须声明命名空间以在 XAML 中使用它。尝试将属性添加到您的页面元素
xmlns:uc="YourApplication.Namepace"
以及 XAML 控件的前缀
<uc:YourUserControl />.
确保在您不引用用户控件时构建您的项目。用户控件中的错误将导致此问题。
于 2012-02-26T23:09:22.623 回答
0
如果您使用的是 Metro 应用程序的默认项目模板,则页面的命名空间通常命名为本地,它已经在从模板创建的新页面中,如下所示。
xmlns:local="using:App1"
请注意,“使用:”是 Metro 应用程序中的新语法。
因此,您可以将用户控件引用为
<local:MyUserControl1/>
如果您将 MyUserControl 从工具箱拖到 xaml 设计器,所有这些都是自动的。您无需为此编写任何代码。
于 2012-07-21T07:29:12.637 回答