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

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

2024.04.21
XML
カテゴリ: C#.NET


以下に、WPFで動的にTabを作成し、その中にユーザーコントロールを配置するサンプルコードを示します。


まず、MainWindow.xamlファイルにTabControlを追加します。



<Window x:Class="WpfApp.MainWindow"

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

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

        xmlns:local="clr-namespace:WpfApp"

        Title="Dynamic Tab Sample" Height="450" Width="800">

    <Grid>

        <TabControl x:Name="tabControl">

            <!-- ダミーのTabItemを追加しておく -->

            <TabItem Header="Dummy"/>

        </TabControl>

        <Button Content="Add Tab" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10" Click="AddTab_Click"/>

    </Grid>

</Window>

```


次に、MainWindow.xaml.csファイルに、AddTab_Clickイベントハンドラを追加して、動的にTabを追加するロジックを実装します。


```csharp

using System.Windows;

using System.Windows.Controls;


public partial class MainWindow : Window

{

    private int tabCount = 1;


    public MainWindow()

    {

        InitializeComponent();

    }


    private void AddTab_Click(object sender, RoutedEventArgs e)

    {

        // 新しいTabItemを作成

        TabItem newTab = new TabItem();

        newTab.Header = "Tab " + tabCount++;


        // 新しいユーザーコントロールを作成してTabItemのコンテンツに設定

        UserControl1 userControl = new UserControl1(); // UserControl1は追加するユーザーコントロールのクラス名に置き換えてください

        newTab.Content = userControl;


        // TabControlにTabItemを追加

        tabControl.Items.Add(newTab);


        // 追加したタブを選択する

        tabControl.SelectedItem = newTab;

    }

}

```


最後に、ユーザーコントロールのクラスを作成します。UserControl1.xamlとUserControl1.xaml.csの2つのファイルを作成し、それぞれのファイルにユーザーコントロールの内容とロジックを定義します。


```xml

<!-- UserControl1.xaml -->

<UserControl x:Class="WpfApp.UserControl1"

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

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

             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 

             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

             mc:Ignorable="d" 

             d:DesignHeight="450" d:DesignWidth="800">

    <Grid>

        <TextBlock Text="This is a user control" HorizontalAlignment="Center" VerticalAlignment="Center"/>

    </Grid>

</UserControl>

```


```csharp

// UserControl1.xaml.cs

using System.Windows.Controls;


public partial class UserControl1 : UserControl

{

    public UserControl1()

    {

        InitializeComponent();

    }

}

```


これで、Add Tabボタンをクリックすると動的にTabが追加され、その中にユーザーコントロールが配置されます。






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

Last updated  2024.04.21 15:40:05


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

© Rakuten Group, Inc.
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: