使用Windows 8开发人员预览版,我正在尝试使用一个简单的用户控件,该控件是我使用内置Windows Metro样式模板创建的。到目前为止,我还无法让我的应用程序解析对该控件的引用,即使它与引用它的页面位于相同的项目和命名空间中。我只是得到了“没有找到类型”,我已经查看了“构建”示例,但找不到使用用户控件的示例C#项目。有谁知道我在哪里可以找到一个?
发布于 2012-02-12 23:49:29
检查http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603
您可以通过右键单击项目并选择添加/新建项(Ctrl+Shift+A),然后从项模板列表中选择“用户控件”来创建UserControl
。然后命名它,并以XAML结束,您可以修改该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-27 07:09:23
即使用户控件位于同一命名空间中,也必须声明命名空间才能在XAML中使用它。尝试将属性添加到页面元素
xmlns:uc="YourApplication.Namepace"
和XAML控件的前缀
<uc:YourUserControl />.
确保在未引用用户控件的情况下生成项目。用户控件中的错误将导致此问题。
发布于 2012-07-21 15:29:13
如果您使用的是metro应用程序的默认项目模板,则页面的命名空间通常命名为local,它已经位于通过模板创建的新页面中,如下所示。
xmlns:local="using:App1"
注意,"using:“是metro应用程序中的新语法。
因此您可以将用户控件引用为
<local:MyUserControl1/>
如果将MyUserControl从工具箱拖到xaml设计器,则所有这些操作都是自动的。您不需要为此编写任何代码。
https://stackoverflow.com/questions/9242398
复制相似问题