كيف يمكنني تعطيل الروابط الصفحة في شريط التنقل سيلفرلايت 3 مؤقتا؟

StackOverflow https://stackoverflow.com/questions/1606964

سؤال

ولدي سيلفرلايت 3 تطبيق الملاحة وأود أن تعطيل روابط لصفحات مختلفة سيلفرلايت عندما يتم تحرير عنصر مؤقتا، مما يتطلب من المستخدم أن يلغي صراحة تحرير بدلا من التنقل بعيدا عن الشاشة.

[تحرير] كيف يمكنني تعطيل ارتباطات التنقل مؤقتا برمجيا؟

هل كانت مفيدة؟

المحلول

هل يمكن ربط ISENABLED على كل ارتباط تشعبي إلى خاصية العالمية. يمكنك تعيين الخاصية من رمز وبالتالي تعطيل الملاحة.

و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;
    }

نصائح أخرى

وهذا هو أكثر تخمين من إجابة ولكن:

حسنا، هناك طريقة بسيطة وغير أنيقة، وهذا هو اجبار جميع الروابط المفرط ليتم تعطيل عندما يتم تحريرها العنصر الذي هو حول تركز المكاسب، ومن ثم تمكينها عندما يفقد عنصر التركيز أو ألغى المستخدم ذلك. للقيام بذلك، هل يمكن أن الاستيلاء على الحاوية مع الروابط في الداخل، وحلقة من خلالها وتعطيل أو تمكين لهم.

إذا موجود الملاحة في عنصر تحكم آخر تماما، ثم يمكن وضع هذه السيطرة كما تعطيل باتباع نفس طريقة التركيز وفقدان التركيز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top