Microsoft Technologies Navigation History এবং Back/Forward Button Implementation গাইড ও নোট

351

Windows Presentation Foundation (WPF), UWP (Universal Windows Platform), এবং WinUI অ্যাপ্লিকেশন তৈরি করার সময় Navigation History এবং Back/Forward Button-এর মাধ্যমে ব্যবহারকারীর গতিবিধি ট্র্যাক করা এবং নেভিগেশন ইতিহাস বজায় রাখা একটি গুরুত্বপূর্ণ বৈশিষ্ট্য। এই টিউটোরিয়ালে Navigation History এবং Back/Forward Buttons কিভাবে কার্যকরভাবে ইমপ্লিমেন্ট করা যায় তা দেখানো হবে।


Navigation History কী?

Navigation History ব্যবহারকারী যখন অ্যাপ্লিকেশনে বিভিন্ন পৃষ্ঠায় (Pages) নেভিগেট করেন, তখন সেগুলোর একটি ইতিহাস তৈরি হয়। এই ইতিহাস ব্যবহারকারীকে Back এবং Forward বাটন ব্যবহার করে পূর্ববর্তী পৃষ্ঠায় ফিরে যেতে বা পরবর্তী পৃষ্ঠায় যেতে সাহায্য করে।


Back/Forward Button Implementation

WPF, UWP বা WinUI এ Back এবং Forward বাটন ইমপ্লিমেন্ট করার জন্য NavigationService বা Frame ব্যবহার করা হয়। চলুন দেখা যাক কিভাবে Back এবং Forward বাটন কার্যকরভাবে ইমপ্লিমেন্ট করা যায়।

WPF Example: Back and Forward Button Using NavigationService

WPF-এ Frame কন্ট্রোল ব্যবহার করে পেজ নেভিগেশন এবং ইতিহাস পরিচালনা করা হয়। Back এবং Forward বাটন ব্যবহারকারীকে সহজে পূর্ববর্তী বা পরবর্তী পৃষ্ঠায় নেভিগেট করতে সাহায্য করে।

Step 1: Page Navigation Setup

MainWindow.xaml:

<Window x:Class="NavigationHistoryExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Navigation History Example" Height="350" Width="525">
    <Grid>
        <Frame Name="mainFrame" NavigationUIVisibility="Hidden" />
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top">
            <Button Content="Back" Click="BackButton_Click" Width="100" Margin="10"/>
            <Button Content="Forward" Click="ForwardButton_Click" Width="100" Margin="10"/>
        </StackPanel>
    </Grid>
</Window>

Step 2: Back and Forward Button Code

MainWindow.xaml.cs:

using System.Windows;

namespace NavigationHistoryExample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            mainFrame.Navigate(new Page1());
        }

        private void BackButton_Click(object sender, RoutedEventArgs e)
        {
            if (mainFrame.CanGoBack)
            {
                mainFrame.GoBack();
            }
        }

        private void ForwardButton_Click(object sender, RoutedEventArgs e)
        {
            if (mainFrame.CanGoForward)
            {
                mainFrame.GoForward();
            }
        }
    }
}

Step 3: Create Pages for Navigation

Page1.xaml:

<Page x:Class="NavigationHistoryExample.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Page1">
    <Grid>
        <Button Content="Go to Page 2" Click="GoToPage2_Click" Width="100" Height="50" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Page>

Page1.xaml.cs:

using System.Windows;

namespace NavigationHistoryExample
{
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void GoToPage2_Click(object sender, RoutedEventArgs e)
        {
            this.NavigationService.Navigate(new Page2());
        }
    }
}

Page2.xaml:

<Page x:Class="NavigationHistoryExample.Page2"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Page2">
    <Grid>
        <Button Content="Go to Page 1" Click="GoToPage1_Click" Width="100" Height="50" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Page>

Page2.xaml.cs:

using System.Windows;

namespace NavigationHistoryExample
{
    public partial class Page2 : Page
    {
        public Page2()
        {
            InitializeComponent();
        }

        private void GoToPage1_Click(object sender, RoutedEventArgs e)
        {
            this.NavigationService.Navigate(new Page1());
        }
    }
}

Step 4: Explanation

  • mainFrame.Navigate: প্রথমে Page1 এ নেভিগেট করে।
  • BackButton_Click: GoBack() ব্যবহার করে previous page-এ ফিরে যায়।
  • ForwardButton_Click: GoForward() ব্যবহার করে next page-এ চলে যায়।
  • NavigationService: এটি WPF পেজ নেভিগেশনের জন্য ব্যবহৃত প্রধান ক্লাস, যা নেভিগেশন ইতিহাস পরিচালনা করে।

UWP Example: Back and Forward Button Using Frame

UWP-এ পেজ নেভিগেশন খুব সহজ এবং Frame কন্ট্রোল ব্যবহার করে Back/Forward বাটন ইমপ্লিমেন্ট করা হয়।

Step 1: Page Navigation Setup

MainPage.xaml:

<Page
    x:Class="NavigationHistoryExample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Content="Go to Page 2" Click="GoToPage2_Click"/>
        <Button Content="Back" Click="BackButton_Click" Margin="10"/>
        <Button Content="Forward" Click="ForwardButton_Click" Margin="10"/>
    </StackPanel>
</Page>

Step 2: Code Behind

MainPage.xaml.cs:

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace NavigationHistoryExample
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void GoToPage2_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(Page2));
        }

        private void BackButton_Click(object sender, RoutedEventArgs e)
        {
            if (this.Frame.CanGoBack)
            {
                this.Frame.GoBack();
            }
        }

        private void ForwardButton_Click(object sender, RoutedEventArgs e)
        {
            if (this.Frame.CanGoForward)
            {
                this.Frame.GoForward();
            }
        }
    }
}

Key Methods for Navigation

  1. CanGoBack: এটি চেক করে যে, ব্যবহারকারী পূর্ববর্তী পৃষ্ঠায় ফিরে যেতে পারবেন কিনা।
  2. CanGoForward: এটি চেক করে যে, ব্যবহারকারী পরবর্তী পৃষ্ঠায় যেতে পারবেন কিনা।
  3. GoBack(): এটি ব্যবহারকারীকে পূর্ববর্তী পৃষ্ঠায় নিয়ে যায়।
  4. GoForward(): এটি ব্যবহারকারীকে পরবর্তী পৃষ্ঠায় নিয়ে যায়।

Conclusion

Navigation History এবং Back/Forward Buttons ব্যবহারকারীর গতিবিধি এবং নেভিগেশন ইতিহাস পরিচালনার জন্য অপরিহার্য বৈশিষ্ট্য। WPF এবং UWP অ্যাপ্লিকেশনগুলিতে এই ফিচারটি কার্যকরভাবে ইমপ্লিমেন্ট করা যায়, যা ব্যবহারকারীর জন্য একটি উন্নত এবং ইন্টারেক্টিভ অভিজ্ঞতা তৈরি করে। XAML এবং C# এর মাধ্যমে সহজে এই ফিচারটি ইমপ্লিমেন্ট করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...