Alw*_*wyn 2 c# xaml windows-runtime
我想在我的应用程序中标准化弹出窗口.所以我为它创建了一个用户控件,并按如下方式引用它:
<!--<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>-->
Run Code Online (Sandbox Code Playgroud)
并在代码背后:
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;
}
Run Code Online (Sandbox Code Playgroud)
然而,这失败了以下错误,指向上面的行:
错误1当前上下文中不存在名称"StandardDialog"C:\ NSyncHg\MyApp.WinRT\Views\TestVisualAwarePage.xaml.cs 46 13 MyApp.WinRT
但是,如果我要取消注释上面的弹出窗口并恢复到内置弹出窗口,则所有内容都会编译并运行.
我究竟做错了什么?
您需要使用该x:Name属性,而不仅仅是Name.
<uc:StandardDialog x:Name="StandardDialog" ...
Run Code Online (Sandbox Code Playgroud)
Windows应用商店应用程序不会自动为Name指定的对象创建字段.x:Name如果要创建命名字段并且可用于后面的代码,则需要该属性.