Home > C# > WPF > WPFコントロール > Listbox

WPFで、矩形をListBoxに動的に追加する

概要

C# WPFアプリケーションで要素を動的に追加する方法です。 ItemsControlを使うと要素をプログラムで追加できます。ここでは、矩形要素を追加します。

要素を動的に追加する方法

[xaml]


<Window x:Class="AddRectangle.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="200" Width="300">
    <DockPanel>
        <Button DockPanel.Dock="Bottom" Click="Button_Click" >矩形を追加</Button>
        <Grid DockPanel.Dock="Top">
            <ScrollViewer>
                <ItemsControl Name="itemsRectangle">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Rectangle Width="144"
                                       Height="32"
                                       Margin="2">
                                <Rectangle.Fill>
                                    <SolidColorBrush Color="{Binding}"/>
                                </Rectangle.Fill>
                            </Rectangle>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            
            </ScrollViewer>
        </Grid>
    </DockPanel>   
</Window>
				

[xaml.cs]


using System.Windows;

namespace AddRectangle
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            itemsRectangle.Items.Add("Aqua");
        }
    }
}
				

プログラムを実行する

実行直後
ListBoxには何も表示されいません。

「矩形を追加」ボタンを押す

「矩形を追加」ボタンを押す
ボタンを押すと矩形が追加されます。

ボタンをたくさん押す。

ボタンをたくさん押す
ボタンを押しただけ、矩形が追加されます。画面内に入りきれないとスクロールバーも表示されます。

参考資料

[Charls Petzold]プログラミングWindows第6版 上 p512 sampleコード ColorItems

プログラミング Windows 第6版 第1章 WPF編 (外部サイト)
「プログラミング Windows 第6版」の紹介記事を書いたサイトがありましたのでリンクを貼っておきます。 「プログラミング Windows 第6版」は ホームアプリ向けに書かれた書籍ですので、サンプルプログラムは、 VisualStudio for Desktopでは、そのままでは動作しないので注意が必要です。

動作確認環境

Microsoft Visual Studio Express 2013 for Desktop 64bit
Windows 8.1 pro 64bit
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」