【发布时间】:2014-10-11 00:12:16
【问题描述】:
我正在构建一个需要用户输入数字的 WPF 应用程序。我正在使用 NavigationWindow 并构建了一个包含数字键盘的 Page。该应用程序需要多次输入数字。受this 的启发,我想将数字Page 放入Frame 内Popup,如下所示:
<Grid Name="mainDisplay">
<Popup Name="popupDialog" PlacementTarget="{Binding ElementName=aInputBox Placement="Center">
<StackPanel>
<Frame Source="MyNumpad.xaml"/>
<Button Click="OK_Outside_Click">Ok_Outside_Numpad</Button>
</StackPanel>
</Popup>
// invalid comment and other stuff in grid....
</Grid>
当点击“Ok_Outside_Numpad”Button 时,小键盘消失并重新启用主页。代码如下:
private void OK_Outside_Click(object sender, RoutedEventArgs e)
{
popupDialog.IsOpen = false;
mainDisplay.IsEnabled = true;
}
两个问题:
内部
MyNumpad.xaml已经有一个“确定”按钮。是否可以通过单击Ok_Inside_Numpad按钮访问mainDisplay和popupDialog?如何将变量传递给MyNumpad构造函数?MyNumpad退出时如何获取用户数字输入?
谢谢!请注意,我是 WPF 新手,不确定我的方法是否有用。欢迎任何想法!
【问题讨论】:
-
理想情况下,您应该使用绑定来执行此操作,但如果您想在代码隐藏中执行此操作,让您的
mainDisplay根据弹出窗口的@987654336 切换自己的状态会更容易@ 和Closed事件,而不是让弹出窗口中托管的内容负责它应该一无所知的 UI 元素。