4

Windows 8 開発者プレビューを使用して、組み込みの Windows Metro スタイル テンプレートを使用して作成した単純なユーザー コントロールを使用しようとしています。それを参照しているページと同じプロジェクトと名前空間にあるにもかかわらず、まだアプリケーションでコントロールへの参照を解決することができませんでした。「型が見つかりませんでした」というメッセージが表示されます。「ビルド」サンプルを調べましたが、ユーザー コントロールを使用するサンプル C# プロジェクトが見つかりませんでした。どこで見つけられるか知っている人はいますか?

4

3 に答える 3

2

http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603 を確認してください

UserControlプロジェクトを右クリックして Add/New Item (Ctrl+Shift+A) を選択し、アイテム テンプレートのリストから [User Control] を選択することで、 を作成できます。次に名前を付けて、次のような 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>

次のようなコードビハインド:

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" />
于 2012-02-12T15:49:29.013 に答える
1

ユーザー コントロールが同じ名前空間にある場合でも、XAML で使用するには名前空間を宣言する必要があります。ページ要素に属性を追加してみてください

xmlns:uc="YourApplication.Namepace"

および XAML コントロールのプレフィックス

<uc:YourUserControl />.  

ユーザー コントロールを参照していないときにプロジェクトがビルドされることを確認してください。ユーザー コントロールのエラーは、まさにこの問題を引き起こします。

于 2012-02-26T23:09:22.623 に答える
0

メトロ アプリの既定のプロジェクト テンプレートを使用している場合、ページの名前空間は通常 local という名前であり、次のようにテンプレートから作成された新しいページに既に含まれています。

xmlns:local="using:App1"

「using:」は、metro アプリの新しい構文であることに注意してください。

したがって、ユーザーコントロールを次のように参照できます

<local:MyUserControl1/>

MyUserControl をツールボックスから xaml デザイナーにドラッグすると、これらはすべて自動的に行われます。このためのコードを記述する必要はありません。

于 2012-07-21T07:29:12.637 に答える