-
Notifications
You must be signed in to change notification settings - Fork 693
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow app users to resize NavigationView's Pane #190
Comments
OpenPaneWidth, not OpenPaneLength To make (re)setting a remembered width easier, can Can an example of persisting pane width be a requirement for documentation? |
OpenPaneLength is an existing property on NavigationView. (Developers can already change the width of the Pane using this property).
Absolutely! |
There is a splitter control for resizing elements. I would suggest if that were to be added to the SplitView control, and inherrited by the NavigationView - the default should be set to False. The control could also have the ability to remember the new OpenPaneLength so navigating to and from, or re-opening the app restores that value. It may also be prudent to include a Maximum and Minimum PaneLength. Also perhaps dragging below the Minimum length could toggle the Pane to Closed. |
It's an interesting idea but would be a change from how Xaml controls behave today. While we specify defaults, no control that I can think of saves any values from runtime. I don't think we have a place to store this kind of information. |
Ok, so perhaps there is an Internal value, and if no default is set in XAML, it just uses that value? If not, then maybe offer guidance and sample code to implement it as a recommendation? The mail app currently supports this for its left most sidebar. |
That is fair enough. :) The ability to resize should still be considered for the SplitView control, and inherited by the NavigationView. Then developers can implement the save and recall of that OpenPaneLength value, with perhaps the Max and Min Lengths to constrain the resizing. |
Hi, I would like this feature as well, what is the current state? |
FYI, in the 8.0 release of the Windows Community Toolkit later this year we'll have a new |
Thanks @RayKoopa for calling that out. In fact, the Photos app is using the new I even have this specific scenario as part of our sample code, you can see how you can use it easily here: https://github.com/CommunityToolkit/Labs-Windows/blob/main/labs/SizerBase/samples/SizerBase.Samples/PropertySizerNavigationViewPage.xaml#L53 |
Proposal: Allow app users to resize NavigationView's and SplitView's Pane component
Summary
App users should be able to change the width of NavigationView’s left Pane in an intuitive way. Because NavigationView uses a SplitView in its template, ideally this modification is made once to SplitView and NavigationView gets resizing for free.
Rationale
When interacting with complex Windows applications such as Outlook, Visual Studio, and Photoshop, users expect to be able to resize the application’s panes to suit their own preferences. Changing the size of component panes to accommodate the user’s work environment is an expected aspect of productivity on larger screens. Xaml’s NavigationView and SplitView controls provide a Pane component for modern apps to show columns of information but don’t include a mechanism for end-users to change the width of these panes. Enabling this behavior will meet user expectations for a common UI capability.
Adding this feature to existing controls, rather than creating a new GridSplitter or similar class, will greatly speed up adoption because app already using NavigationView or SplitView controls will get the new behavior for free without the need for app authors to modify their apps.
Functional Requirements
Usage Examples
Pane resizing would be enabled by default (but apps would be able to opt out by setting a new
IsPaneResizeEnabled
property). For an optimal user experience, apps should remember user's preferred width setting between app sessions. To do so, apps would likely choose to add a handler for a newPaneLengthChanged
event and save the currentOpenPaneLength
value before the app closes.Detailed Feature Design
Open Questions
Should panes be resizable in their light-dismiss overlay state?
Should ability to resize using keyboard/gamepad be built into the controls?
The text was updated successfully, but these errors were encountered: