2012-02-11 2 views
4

Windows 8 개발자 미리보기 사용 간단한 사용자 컨트롤을 사용하려고합니다. 내장 된 Windows Metro 스타일 템플릿을 사용하여 만들었습니다. 아직 참조하는 페이지와 동일한 프로젝트 및 네임 스페이스에 있어도 컨트롤에 대한 참조를 해결하기 위해 내 응용 프로그램을 가져올 수 없습니다. "형식을 찾을 수 없습니다." "빌드"샘플을 살펴본 결과 사용자 컨트롤을 사용하는 샘플 C# 프로젝트를 찾을 수 없습니다. 어디에서 찾을 수 있는지 아는 사람이 있습니까?Windows 8 사용자 정의 컨트롤

답변

2

당신이 바로 새 항목을 프로젝트를 클릭하고 추가/선택 항목 템플릿 목록에서 (Ctrl 키 + 시프트 + A) 및 선택 "사용자 제어"하여 UserControl를 만들 수 있습니다 http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

확인합니다. 당신은 다음의 이름을 지정하고 여기처럼 더 UI를 추가하기 위해 수정할 수있는 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> 

코드 : 그런 다음 XAML의 다른 곳에서 해당 컨트롤을 사용할 수 있습니다

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(); 
     } 
    } 
} 

<xa:MainPage 
    xmlns:xa="using:Xyzzer.AsyncUI" /> 
+0

이 답변에 정보를 추가하여 이해하기 쉽도록하십시오. 나에게 이전 버전과의 비교는 변경 사항을 강조 표시하지 않습니다. – Morothar

+1

원래 포스터는 샘플 UserControl 구현에 대해 물었고 그 당시에 그를 만족시킨 것으로 보이는 링크를 사용했습니다. 더 자세한 내용을 추가 할 수 있습니다. –

+0

추가 시간을 투자 해 주셔서 감사합니다! – Morothar

1

사용자 정의 컨트롤이 동일한 네임 스페이스에있는 경우에도 XAML에서 사용하기 위해 네임 스페이스를 선언해야합니다. 당신은 사용자 정의 컨트롤을 참조하지 않을 때 프로젝트가 빌드되었는지 확인하여 XAML 제어

<uc:YourUserControl />. 

에 페이지 요소

xmlns:uc="YourApplication.Namepace" 

및 접두사에 속성을 추가하십시오. 사용자 정의 컨트롤에 오류가 있으면이 문제 만 발생합니다.

0

메트로 앱의 기본 프로젝트 템플리트를 사용하는 경우, 페이지의 이름 공간은 일반적으로 로컬로 이름 지정되며, 다음과 같이 템플리트에서 작성된 새 페이지에 이미 있습니다.

"using :"은 메트로 앱의 새로운 구문입니다. 당신은 XAML 디자이너로 도구 상자에서을 MyUserControl를 드래그하면

그래서 당신이

<local:MyUserControl1/> 

로 사용자 정의 컨트롤을 참조 할 수 있습니다, 모든 자동 있습니다. 이를 위해 코드를 작성할 필요가 없습니다.