Frage

Ich habe eine Silverlight 3-Navigationsanwendung, und ich möchte, um vorübergehend die Links zu den verschiedenen Silverlight-Seiten zu deaktivieren, wenn ein Element bearbeitet wird, dass der Benutzer die Bearbeitung explizit abzubrechen, anstatt zu navigieren vom Bildschirm entfernt.

[EDIT] Wie kann ich die Navigationslinks programmatisch vorübergehend deaktivieren?

War es hilfreich?

Lösung

Sie können die IsEnabled auf jedem Hyperlink auf eine globale Eigenschaft binden. Sie können die Eigenschaft von Code festgelegt und damit die Navigation deaktivieren.

MainPage.cs

public partial class MainPage : UserControl
{
    public bool IsNavigationEnabled
    {
        get { return (bool)GetValue(IsNavigationEnabledProperty); }
        set { SetValue(IsNavigationEnabledProperty, value); }
    }
    public static readonly DependencyProperty IsNavigationEnabledProperty =
        DependencyProperty.Register("IsNavigationEnabled", typeof(bool), typeof(MainPage), null);

    public MainPage()
    {
        InitializeComponent();

        DataContext = this;
    }

...

MainPage.xaml

<HyperlinkButton
    x:Name="Link1"
    IsEnabled="{Binding IsNavigationEnabled}"
    Style="{StaticResource LinkStyle}"
    NavigateUri="/Home"
    TargetName="ContentFrame"
    Content="home" />

Home.xaml.cs

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MainPage page = (MainPage)Application.Current.RootVisual;
        page.IsNavigationEnabled = !page.IsNavigationEnabled;
    }

Andere Tipps

Das ist eine Vermutung als eine Antwort, aber:

Nun gibt es die einfache und nicht-elegante Art und Weise, und das ist es, alle Hyperlinks zu zwingen, deaktiviert werden, wenn das Element, das im Begriff ist, Gewinne bearbeitet werden konzentrieren und sie dann aktivieren, wenn das Element des Fokus oder die verliert Benutzer bricht es. Um dies zu tun, könnten Sie den Behälter mit den Links innen greifen und Schleife durch sie und deaktivieren oder aktivieren sie.

Wenn die Navigation existiert in einem anderen Steuerelement vollständig, dann könnte die Steuerung eingestellt wird, wie nach dem gleichen Verfahren des Fokus deaktiviert und dem Fokus verloren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top