「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.17
XML
カテゴリ: C#.NET


`Frame` は、WPF アプリケーションにおいて、他のページやコンテンツを表示するためのコントロールです。以下に、`Frame` を活用した基本的なサンプルコードを示します。


このサンプルでは、メニューバーから異なるページを表示する機能を持つ簡単なブラウザアプリケーションを作成します。


まず、3 つのページを作成します。


1. **HomePage.xaml**:


```xml

<Page x:Class="FrameSample.HomePage"

      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>

        <TextBlock Text="Welcome to the Home Page!" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>

    </Grid>

</Page>

```


2. **AboutPage.xaml**:


```xml

<Page x:Class="FrameSample.AboutPage"

      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>

        <TextBlock Text="About This Application" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>

    </Grid>

</Page>

```


3. **ContactPage.xaml**:


```xml

<Page x:Class="FrameSample.ContactPage"

      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>

        <TextBlock Text="Contact Us" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>

    </Grid>

</Page>

```


次に、MainWindow.xaml を作成し、メニューバーと `Frame` を追加します。


```xml

<Window x:Class="FrameSample.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:local="clr-namespace:FrameSample"

        Title="Frame Sample" Height="450" Width="800">

    <Grid>

        <Menu>

            <MenuItem Header="Home" Click="Home_Click"/>

            <MenuItem Header="About" Click="About_Click"/>

            <MenuItem Header="Contact" Click="Contact_Click"/>

        </Menu>

        <Frame x:Name="mainFrame" Margin="0,30,0,0"/>

    </Grid>

</Window>

```


最後に、MainWindow.xaml.cs を編集してメニューバーの各項目がクリックされたときに、対応するページを `Frame` に表示するコードを追加します。


```csharp

using System.Windows;


namespace FrameSample

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            // 初期ページを表示

            mainFrame.Navigate(new HomePage());

        }


        private void Home_Click(object sender, RoutedEventArgs e)

        {

            // Home ページを表示

            mainFrame.Navigate(new HomePage());

        }


        private void About_Click(object sender, RoutedEventArgs e)

        {

            // About ページを表示

            mainFrame.Navigate(new AboutPage());

        }


        private void Contact_Click(object sender, RoutedEventArgs e)

        {

            // Contact ページを表示

            mainFrame.Navigate(new ContactPage());

        }

    }

}

```


これで、アプリケーションを実行すると、メニューバーから選択したページが `Frame` 内に表示されます。ページが表示されると、そのページの内容が `Frame` 内に表示されます。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.17 11:36:40


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: