J'ai une application de navigation Silverlight 3 et je souhaite désactiver temporairement les liens vers les différentes pages Silverlight lorsqu'un élément est en cours d'édition, ce qui nécessite que l'utilisateur annule explicitement l'édition plutôt que de quitter l'écran. [EDITION] Comment désactiver temporairement les liens de navigation par programmation?Comment désactiver temporairement les liens de page dans la barre de navigation de Silverlight 3?
Répondre
Vous pouvez lier IsEnabled sur chaque HyperLink à une propriété globale. Vous pouvez définir la propriété à partir du code et ainsi désactiver la navigation.
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;
}
Ceci est plus une supposition qu'une réponse, mais:
Eh bien, il y a la façon simple et non-élégante, et qui est de forcer tous les liens hyper être désactivé lorsque l'élément qui est sur le point d'être Les mises à jour sont modifiées, puis activées lorsque l'élément perd le focus ou que l'utilisateur l'annule. Pour ce faire, vous pouvez attraper le conteneur avec les liens à l'intérieur, et les parcourir et les désactiver ou les activer.
Si la navigation existe entièrement dans un autre contrôle, ce contrôle peut être désactivé en suivant la même méthode de mise au point et de mise au point perdue.
Wow, merci pour ce épelant ... beaucoup apprécié. J'ai encore beaucoup à apprendre sur Silverlight. – Feckmore
De rien! Silverlight est incroyable et vous pouvez faire de super choses avec. J'apprends tous les jours de nouveaux réglages sur Silverlight. – thomasmartinsen