简体   繁体   中英

Best way to create a popup replacement in WP7

I'm using the popup control in wp7 as a modal dialog to edit grid rows. The performance is dreadful - it can take up to 5 seconds to open - and I'm looking for an alternative. I'm also aware that I will have problems further down the road when I try and support landscape.

My grid control (think datagrid) that open the popup is a user control that can appear anywhere on any page. I tried embedding a hidden grid inside it that resizes to 480 x 800 but can't seem to make it appear any higher up the page than the grid.

I don't want to put a hidden grid on every page just in case.

Is there a better way? Surely someone must have done this sort of thing before.

I tried all the alternatives but ended up using the hidden grid approach.

I created a base class which looks for a named grid on the page, adds itself to the Children property and makes it visible.

It is simple, effective and supports all orientations.

I've used ChildWindow from the main Silverlight 3 framework, following instructions from: http://wildermuth.com/2010/08/17/Using_ChildWindow_in_Windows_Phone_7_Projects

If you don't like the childwindow styling, then you can edit the resources - eg in RunSat my popup is actually just light text on a dark grey semi-transparent background.

I think you should implement a new PhoneApplicationPage, and code it as a "modal form".

This because, in any case, you have to spend some time writing code:

  • ChildWindows are not phone-styled (they are graphically different from the rest of the GUI)...the worst solution...
  • Any class deriving from Popup (it's an abstract class) needs to be customized, and it's not rendered by the WP rendering thread. So...not a good solution, as you have seen.

By using the OnNavigateTo/OnNavigateFrom events, you can easily store and trace the results (also collections, fields, classes, ..) in a simple "sharing" class (maybe linked to App class = you always have a simple way to reference it)...and you also all the powerful tools for a complete interface. And, obviously, non problems with performance!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM