Suggestion
Problem
The windows-reactor NavigationView widget does not expose two important WinUI 3 properties:
PaneFooter accepts a generic UIElement to render at the bottom of the navigation pane. The underlying WinUI NavigationView has SetPaneFooter in its vtable, but the reactor widget does not expose it.
OpenPaneLength controls the width of the pane when expanded. The underlying WinUI NavigationView has SetOpenPaneLength, but the reactor only exposes this on SplitView, not on NavigationView.
Suggestion
PaneFooter
Add a pane_footer field and builder method to NavigationView:
// In widgets/navigation_view.rs
pub struct NavigationView {
// ... existing fields ...
pub pane_footer: Option<Box<Element>>,
}
impl NavigationView {
pub fn pane_footer(mut self, el: impl Into<Element>) -> Self {
self.pane_footer = Some(Box::new(el.into()));
self
}
}
This would require:
- A new
Prop::PaneFooter variant (or reuse an existing element-passing mechanism)
- A match arm in
backend/winui/mod.rs that calls SetPaneFooter with the element's handle
- The
children() method to include the footer element
OpenPaneLength
Add an open_pane_length field and builder method:
pub struct NavigationView {
// ... existing fields ...
pub open_pane_length: Option<f64>,
}
impl NavigationView {
pub fn open_pane_length(mut self, len: f64) -> Self {
self.open_pane_length = Some(len);
self
}
}
This would require a match arm in backend/winui/generated_set_prop.rs:
(Prop::OpenPaneLength, PropValue::F64(v), Handle::NavigationView(h)) => {
h.SetOpenPaneLength(*v)?;
}
Optionally, also expose CompactPaneLength, ExpandedModeThresholdWidth, and CompactModeThresholdWidth for full control over the adaptive pane behavior.
Suggestion
Problem
The
windows-reactorNavigationViewwidget does not expose two important WinUI 3 properties:PaneFooteraccepts a genericUIElementto render at the bottom of the navigation pane. The underlying WinUINavigationViewhasSetPaneFooterin its vtable, but the reactor widget does not expose it.OpenPaneLengthcontrols the width of the pane when expanded. The underlying WinUINavigationViewhasSetOpenPaneLength, but the reactor only exposes this onSplitView, not onNavigationView.Suggestion
PaneFooter
Add a
pane_footerfield and builder method toNavigationView:This would require:
Prop::PaneFootervariant (or reuse an existing element-passing mechanism)backend/winui/mod.rsthat callsSetPaneFooterwith the element's handlechildren()method to include the footer elementOpenPaneLength
Add an
open_pane_lengthfield and builder method:This would require a match arm in
backend/winui/generated_set_prop.rs:Optionally, also expose
CompactPaneLength,ExpandedModeThresholdWidth, andCompactModeThresholdWidthfor full control over the adaptive pane behavior.