Я хочу скрыть кнопку меню гамбургера автоматически, чтобы отобразить меню сверху вниз. Для этого я попытался связать HamburgerButtonVisibility к IsPaneOpen собственности:UWP Template10 Скрыть кнопку гамбургера, когда меню открыто
<controls:HamburgerMenu x:Name="Menu" VisualStateNarrowMinWidth="0" HamburgerBackground="White" HamburgerForeground="Black"
NavAreaBackground="{StaticResource MenuBackground}"
HamburgerButtonVisibility="{x:Bind Menu.IsOpen, Mode=OneWay, Converter={StaticResource ReverseBooleanToVisibilityConverter}}" />
Но с этим решением есть одна проблема: когда я открываю меню и нажмите вне меню, меню закрывается, но кнопка гамбургер исчезает.
Есть ли другие решения для этого?
Также я не узнал, как установить NavigationService в HamburgerMenu, если меню принадлежит для страницы (а не оболочки). Я попытался установить его с помощью страницы ViewModel, но я получаю NRE в этом случае:
<Page
x:Class="App.LoginPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:App.ViewModels"
mc:Ignorable="d">
<Page.DataContext>
<vm:LoginViewModel />
</Page.DataContext>
<controls:HamburgerMenu x:Name="Menu" />
</Page>
sealed partial class LoginPage : Page
{
public LoginPage()
{
this.InitializeComponent();
Menu.NavigationService = ViewModel.NavigationService; //NRE here
}
public LoginViewModel ViewModel => DataContext as LoginViewModel;
}
Stack след:
at Template10.Controls.HamburgerMenu.set_NavigationService(INavigationService value)
at App.LoginPage..ctor()
at App.App_XamlTypeInfo.XamlTypeInfoProvider.Activate_46_LoginPage()
at App.App_XamlTypeInfo.XamlUserType.ActivateInstance()
Мне не нравится внешний вид этого подхода, но спасибо за просьбу, чтобы я мог решить эту ошибку в шаблоне 10 HamMenu. –
@ JerryNixon-MSFT _I не нравится этот подход_ - Вы имеете в виду HamburgerButtonVisibility, привязанный к свойству IsOpen? Как бы вы реализовали такой тип меню? Буду признателен, если вы предложите лучшее решение. –
Реализация в порядке. Я не поклонник спрятать кнопку Хэм. –