2012-02-11 14 views
4

Windows 8の開発者プレビューを使用しています。シンプルなユーザーコントロールを使用しようとしています。Windows Metroスタイルのテンプレートを使用して作成しました。 まだ、コントロールを参照しているページと同じプロジェクトと名前空間にあるにもかかわらず、コントロールへの参照を解決するためにアプリケーションを取得できませんでした。私はちょうど "型が見つかりませんでした"を取得します "ビルド"サンプルを見て、ユーザーコントロールを使用するサンプルC#プロジェクトが見つかりませんでした。 誰かがどこにいるのか知っていますか?Windows 8ユーザーコントロールサンプル

答えて

2

あなたは右の[新しい項目のプロジェクトをクリックし、追加/選択項目テンプレートの一覧から、(Ctrlキー+ Shiftキー+ A)と選択「ユーザーコントロール」をすることによりUserControlを作成することができますhttp://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

チェック。あなたはそれに名前を付け、あなたはここのようなより多くのUIを追加するために変更することができますXAMLで終わる:あなたはその後、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(); 
     } 
    } 
} 

<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> 

と、このような背後にあるコード

+0

この回答に情報を追加して、わかりやすくしてください。私にとっては、以前のバージョンとの比較では変更が強調されていません。 – Morothar

+1

元のポスターは、サンプルのUserControl実装について質問し、その時点で彼を満足させたと思われるものにリンクしました。私はさらに詳細を追加することができます。 –

+0

余計な時間を投資してくれてありがとう! – Morothar

1

ユーザーコントロールが同じ名前空間にあっても、XAMLで使用するには名前空間を宣言する必要があります。あなたはユーザーコントロールを参照していないとき、あなたのプロジェクトが構築されていることを確認し、あなたのXAMLコントロール

<uc:YourUserControl />. 

にあなたのページ要素

xmlns:uc="YourApplication.Namepace" 

とプレフィックスに属性を追加してみてください。ユーザーコントロールのエラーはこの問題のみを引き起こします。

0

メトロアプリのデフォルトのプロジェクトテンプレートを使用している場合、ページの名前空間は通常、ローカルとして名前が付けられます。テンプレートは次のように作成された新しいページにあります。

「using:」は、メトロアプリケーションの新しい構文です。

だからあなたはあなたがツールボックスからXAMLデザイナーにMyUserControlをドラッグすると、これらすべてが自動化され

<local:MyUserControl1/> 

としてユーザーコントロールを参照することができます。このためにコードを書く必要はありません。