2012-02-11 10 views
4

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

ответ

2

Проверить http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

Вы можете создать UserControl щелкнув правой кнопкой мыши проект и выбрав пункт Add/New Item (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" /> 
+0

, пожалуйста, добавьте информацию в этот ответ, чтобы было легче понять. Для меня сравнение с предыдущей версией не выделяет никаких изменений. – Morothar

+1

Оригинальный плакат спросил о примерной реализации UserControl, и я связался с тем, что, казалось, удовлетворяло его в то время. Однако я могу добавить более подробную информацию. –

+0

Спасибо за то, что потратили лишнее время! – Morothar

1

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

xmlns:uc="YourApplication.Namepace" 

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

<uc:YourUserControl />. 

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

0

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

xmlns:local="using:App1" 

Обратите внимание: «Использование:» - новый синтаксис в приложении метро.

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

<local:MyUserControl1/> 

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