So che questa domanda è non è attiva più, ma per l'amor di completamento che propongo la mia risposta.
Invece di modificare la visibilità utilizzando Stili, ho scritto un'estensione AttachedProperty che è in grado di nascondere/mostrare il MoreButton tramite associazione dati. In questo modo puoi mostrarlo/nasconderlo a tuo piacimento.
L'uso è semplice come vincolante la vostra proprietà per l'estensione:
<CommandBar extensions:CommandBarExtensions.HideMoreButton="{Binding MyBoolean}">
...
</CommandBar>
Il codice di estensione è la seguente:
public static class CommandBarExtensions
{
public static readonly DependencyProperty HideMoreButtonProperty =
DependencyProperty.RegisterAttached("HideMoreButton", typeof(bool), typeof(CommandBarExtensions),
new PropertyMetadata(false, OnHideMoreButtonChanged));
public static bool GetHideMoreButton(UIElement element)
{
if (element == null) throw new ArgumentNullException(nameof(element));
return (bool)element.GetValue(HideMoreButtonProperty);
}
public static void SetHideMoreButton(UIElement element, bool value)
{
if (element == null) throw new ArgumentNullException(nameof(element));
element.SetValue(HideMoreButtonProperty, value);
}
private static void OnHideMoreButtonChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var commandBar = d as CommandBar;
if (e == null || commandBar == null || e.NewValue == null) return;
var morebutton = commandBar.FindDescendantByName("MoreButton");
if (morebutton != null)
{
var value = GetHideMoreButton(commandBar);
morebutton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
}
else
{
commandBar.Loaded += CommandBarLoaded;
}
}
private static void CommandBarLoaded(object o, object args)
{
var commandBar = o as CommandBar;
var morebutton = commandBar?.FindDescendantByName("MoreButton");
if (morebutton == null) return;
var value = GetHideMoreButton(commandBar);
morebutton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
commandBar.Loaded -= CommandBarLoaded;
}
}
Su iniziale vincolante utilizza l'evento Loaded per applicare il nascondere una volta è stato caricato. Il FindDescendantByName
è un altro metodo di estensione che itera l'albero visivo. Potresti volerlo creare o prenderne uno se la tua soluzione non lo contiene ancora.
Sembra che ci sia un'ellissi nella barra dei comandi dell'app mappe? Quando fai clic su di esso puoi selezionare Stampa, Condividi o Feedback. Penso che tu ti sia confuso con il controllo SplitView. La barra dei menu principale in questa app utilizza SplitView. –
per un trucco rapido, ho appena messo Padding = "0,0, -48,0" per nasconderlo. –