Пример элементов управления Windows 8 - PullRequest
4 голосов
/ 11 февраля 2012

Использование предварительного просмотра для Windows 8 Я пытаюсь использовать простой пользовательский элемент управления, созданный мной с использованием встроенного шаблона стиля Windows Metro.Пока я не смог заставить мое приложение разрешить ссылку на элемент управления, даже если оно находится в том же проекте и пространстве имен, что и страница, ссылающаяся на него.Я просто получаю «Тип не найден». Я просмотрел образцы «Build» и не смог найти пример проекта C #, который использует пользовательский элемент управления.Кто-нибудь знает, где я могу его найти?

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Проверка http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

Вы можете создать UserControl, щелкнув правой кнопкой мыши свой проект и выбрав Добавить / Новый элемент (Ctrl + Shift + A) и выбрав «Контроль пользователя» из списка шаблонов элементов,Затем вы называете его и получаете XAML, который вы можете изменить, чтобы добавить больше пользовательского интерфейса, например, здесь:

<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" />
1 голос
/ 27 февраля 2012

Даже если пользовательский элемент управления находится в том же пространстве имен, вам придется объявить пространство имен, чтобы использовать его в XAML.Попробуйте добавить атрибут к элементу вашей страницы

xmlns:uc="YourApplication.Namepace"

и префикс к вашему элементу управления XAML

<uc:YourUserControl />.  

Убедитесь, что ваш проект создается, когда вы не ссылаетесь на пользовательский элемент управления.Ошибка в пользовательском элементе управления вызовет именно эту проблему.

0 голосов
/ 21 июля 2012

Если вы используете шаблон проекта по умолчанию для приложения метро, ​​пространство имен страницы обычно называется локальным, оно уже находится на новой странице, созданной из шаблона, следующим образом.

xmlns:local="using:App1"

Обратите внимание на«using:» - это новый синтаксис в приложении metro.

Таким образом, вы можете ссылаться на свой пользовательский элемент управления как

<local:MyUserControl1/>

Если вы перетащите MyUserControl из панели инструментов в конструктор xaml, все это будет автоматически,Вам не нужно писать код для этого.

...