2

アプリケーションでポップアップを標準化したかったのです。そこで、そのためのユーザー コントロールを作成し、次のように参照します。

    <!--<Popup x:Name="LoginPopup" Grid.ColumnSpan="2" Grid.RowSpan="2" Height="768" Width="1366" IsOpen="False">-->
        <uc:StandardDialog Name="StandardDialog" Height="768" Width="1366" Grid.ColumnSpan="2">
            .
            .
            .
        </uc:StandardDialog>
    <!--</Popup>-->

そしてコードビハインドで:

    private void LoginClicked(object sender, RoutedEventArgs e)
    {
        StandardDialog.IsOpen = true;
        //LoginPopup.IsOpen = true;
    }

    private void CloseLoginPopup(object sender, RoutedEventArgs e)
    {
        StandardDialog.IsOpen = false;
        //LoginPopup.IsOpen = false;
    }

ただし、これは上記の行を指す次のエラーで失敗しました。

エラー 1 名前 'StandardDialog' は現在のコンテキストに存在しません C:\NSyncHg\MyApp.WinRT\Views\TestVisualAwarePage.xaml.cs 46 13 MyApp.WinRT

ただし、上記のポップアップのコメントを外して組み込みのポップアップに戻すと、すべてがコンパイルされて実行されます。

私は何を間違っていますか?

4

1 に答える 1

6

x:Nameだけでなく、属性を使用する必要がありますName

 <uc:StandardDialog x:Name="StandardDialog" ...

Windows ストア アプリケーションは、指定されたオブジェクトのフィールドを自動的に作成しませんName。名前付きフィールドを作成して分離コードで使用できるようにする場合は、このx:Name属性が必要です。

于 2013-07-11T21:26:01.753 に答える