1

私は Windows 8 ストア アプリケーションを作成しており、その中で独自のユーザー コントロールを設計しました。

これが私のユーザーコントロールのコードです(これはダミーコントロールですが、これには問題があります):

<UserControl
    x:Class="Windows8StoreTest.TestUserControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows8StoreTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Width="70"
    Height="40">

    <StackPanel>
        <Button Content="Hello" Foreground="Pink" BorderBrush="Pink"/>
    </StackPanel>
</UserControl>

ユーザー コントロールを自分のページにドロップし、名前を付けました。

<Page
    x:Class="Windows8StoreTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows8StoreTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <local:TestUserControl Name="testControl"/>
    </Grid>
</Page>

ただし、コード ビハインドに移動すると、その名前でコントロールにアクセスできません。存在しないようです!奇妙なのは、コントロールが MainPage クラスの InitializeComponent() メソッド内に存在しないことです。これが、コントロールが存在する理由です。

ユーザー コントロールに欠けているものは何ですか?

Windows 8 ストア、XAML、c# を使用しています。

前もって感謝します

4

3 に答える 3

0

C++環境でも同じ問題がありました。クラスにデフォルトのコンストラクターがなかったことを確認しました。デフォルトのコンストラクターを追加するとすぐに、XAML ファイルを介してプロジェクトで定義された UserControl を使用できました。ただし、デフォルトのコンストラクターがなくても、C++ コード内から使用できました。

于 2015-11-05T07:05:44.983 に答える