首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows 8用户控件示例

Windows 8用户控件示例
EN

Stack Overflow用户
提问于 2012-02-12 01:38:20
回答 3查看 4.2K关注 0票数 4

使用Windows 8开发人员预览版,我正在尝试使用一个简单的用户控件,该控件是我使用内置Windows Metro样式模板创建的。到目前为止,我还无法让我的应用程序解析对该控件的引用,即使它与引用它的页面位于相同的项目和命名空间中。我只是得到了“没有找到类型”,我已经查看了“构建”示例,但找不到使用用户控件的示例C#项目。有谁知道我在哪里可以找到一个?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-12 23:49:29

检查http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

您可以通过右键单击项目并选择添加/新建项(Ctrl+Shift+A),然后从项模板列表中选择“用户控件”来创建UserControl。然后命名它,并以XAML结束,您可以修改该XAML以添加更多UI,如下所示:

代码语言:javascript
运行
复制
<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>

后面的代码是这样的:

代码语言:javascript
运行
复制
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中的其他地方使用该控件,如下所示:

代码语言:javascript
运行
复制
<xa:MainPage
    xmlns:xa="using:Xyzzer.AsyncUI" />
票数 2
EN

Stack Overflow用户

发布于 2012-02-27 07:09:23

即使用户控件位于同一命名空间中,也必须声明命名空间才能在XAML中使用它。尝试将属性添加到页面元素

代码语言:javascript
运行
复制
xmlns:uc="YourApplication.Namepace"

和XAML控件的前缀

代码语言:javascript
运行
复制
<uc:YourUserControl />.  

确保在未引用用户控件的情况下生成项目。用户控件中的错误将导致此问题。

票数 1
EN

Stack Overflow用户

发布于 2012-07-21 15:29:13

如果您使用的是metro应用程序的默认项目模板,则页面的命名空间通常命名为local,它已经位于通过模板创建的新页面中,如下所示。

代码语言:javascript
运行
复制
xmlns:local="using:App1"

注意,"using:“是metro应用程序中的新语法。

因此您可以将用户控件引用为

代码语言:javascript
运行
复制
<local:MyUserControl1/>

如果将MyUserControl从工具箱拖到xaml设计器,则所有这些操作都是自动的。您不需要为此编写任何代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9242398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档