在WP7中创建弹出替换的最佳方法

时间:2011-03-11 07:41:25

标签: windows-phone-7 popup

我正在使用wp7中的弹出控件作为模式对话框来编辑网格行。性能可怕 - 打开可能需要5秒钟 - 我正在寻找替代方案。我也知道,当我尝试支持景观时,我将会遇到更多问题。

打开弹出窗口的我的网格控件(think datagrid)是一个用户控件,可以出现在任何页面的任何位置。我尝试在其中嵌入一个隐藏的网格,其大小调整为480 x 800,但似乎无法使其显示在页面上比网格更高的位置。

我不想在每个页面上放一个隐藏的网格以防万一。

有更好的方法吗?当然有人必须先做过这种事。

3 个答案:

答案 0 :(得分:3)

我尝试了所有替代方案,但最终使用了隐藏的网格方法。

我创建了一个基类,在页面上查找命名网格,将其自身添加到Children属性并使其可见。

它简单,有效并支持所有方向。

答案 1 :(得分:1)

我使用Silverlight 3主框架中的ChildWindow,遵循以下说明: http://wildermuth.com/2010/08/17/Using_ChildWindow_in_Windows_Phone_7_Projects

如果你不喜欢childwindow样式,那么你可以编辑资源 - 例如在RunSat中,我的弹出窗口实际上只是浅灰色半透明背景上的浅色文本。

答案 2 :(得分:0)

我认为你应该实现一个新的PhoneApplicationPage,并将其编码为“模态表单”。

这是因为,无论如何,你必须花一些时间编写代码:

  • ChildWindows不是电话风格的(它们与图形的其他部分图形不同)......最糟糕的解决方案......
  • 任何派生自Popup的类(它是一个抽象类)都需要自定义,并且它不会由WP渲染线程呈现。所以...不是一个好的解决方案,正如你所见。

通过使用OnNavigateTo / OnNavigateFrom事件,您可以在一个简单的“共享”类中轻松存储和跟踪结果(也包括集合,字段,类......)(可能链接到App类=您总是有一个简单的方法引用它)...以及完整界面的所有强大工具。而且,显然,性能没有问题!