hay una solución más elegante donde los comportamientos vinculados se pueden utilizar para deshabilitar la navegación sin ampliar realmente un marco.
crear un comportamiento adjunto:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
namespace A
{
public static class DisableNavigation
{
public static bool GetDisable(DependencyObject o)
{
return (bool)o.GetValue(DisableProperty);
}
public static void SetDisable(DependencyObject o, bool value)
{
o.SetValue(DisableProperty, value);
}
public static readonly DependencyProperty DisableProperty =
DependencyProperty.RegisterAttached("Disable", typeof(bool), typeof(DisableNavigation),
new PropertyMetadata(false, DisableChanged));
public static void DisableChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var frame = (Frame)sender;
frame.Navigated += DontNavigate;
frame.NavigationUIVisibility = NavigationUIVisibility.Hidden;
}
public static void DontNavigate(object sender, NavigationEventArgs e)
{
((Frame)sender).NavigationService.RemoveBackEntry();
}
}
}
Y en el xaml añadir esto cada vez que se utiliza un marco:
<Frame beha:DisableNavigation.Disable="True" />
y en la parte superior de la xaml añadir la importación:
xmlns:beha="clr-namespace:A"
No podría desactivar el audio, pero tal vez más adelante .. –
funcionó perfectamente. gracias :) – ihebiheb