Canvasとは?
Canvasとは,コントロールを座標指定で設置していくときに使うものです。「左から20ピクセル」「上から30ピクセル」の位置にButtonを設置する…などと使うことができます。
Canvasの使い方
Canvasを使う場合は,Canvasの中に任意のコントロールを設置して,Canvas.Left,Canvas.Topなどの値を指定することで,座標を指定します。
座標の指定はCanvas.Left,Canvas.Top 以外にもCanvas.RightとCanvas.Bottomがあります。
通常はCanvas.LeftとCanvas.Topを使用することで,左から何ピクセル,上から何ピクセルという形で指定します。右から指定したい場合はCanvas.Right,下から指定したい場合はCanvas.Bottomを使用しても問題ありません。
<Canvas> <Rectangle Canvas.Left="20" Canvas.Top="20" Width="100" Height="100" Fill="Red"/> </Canvas>
Canvasの中でコントロールが重なり合うとき
Canvasの中でコントロールが重なりあう場合は,コントロールごとに,Panel.ZIndexを指定することで,前面や背面の制御をすることができます。Panel.ZIndexの値が大きければ大きいほど,前面に表示されます。
<Rectangle Canvas.Left="20" Canvas.Top="20" Width="100" Height="100" Fill="Red" Panel.ZIndex="0"/> <Rectangle Canvas.Left="20" Canvas.Bottom="30" Width="100" Height="100" Fill="Blue" Panel.ZIndex="2"/> <Rectangle Canvas.Right="100" Canvas.Bottom="100" Width="100" Height="100" Fill="Yellow" Panel.ZIndex="1"/>
この場合は「Blue」「Yellow」「Red」の順で表示されます。 Rectangle以外にも,普通にButtonを設置することももちろんできます。
<Rectangle Canvas.Left="20" Canvas.Top="20" Width="100" Height="100" Fill="Red" Panel.ZIndex="0"/> <Rectangle Canvas.Left="20" Canvas.Bottom="30" Width="100" Height="100" Fill="Blue" Panel.ZIndex="2"/> <Rectangle Canvas.Right="100" Canvas.Bottom="100" Width="100" Height="100" Fill="Yellow" Panel.ZIndex="1"/> <Button Canvas.Left="40" Canvas.Top="40" Content="AAA" FontSize="20"/>
サンプルコード全体
<Window x:Class="WPF030.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WPF030" mc:Ignorable="d" Title="MainWindow" Height="300" Width="300"> <Grid> <Canvas> <Rectangle Canvas.Left="20" Canvas.Top="20" Width="100" Height="100" Fill="Red" Panel.ZIndex="0"/> <Rectangle Canvas.Left="20" Canvas.Bottom="30" Width="100" Height="100" Fill="Blue" Panel.ZIndex="2"/> <Rectangle Canvas.Right="100" Canvas.Bottom="100" Width="100" Height="100" Fill="Yellow" Panel.ZIndex="1"/> <Button Canvas.Left="40" Canvas.Top="40" Content="AAA" FontSize="20"/> </Canvas> </Grid> </Window>
- C#WPFの道#1!WPFのプロジェクト作成方法をわかりやすく解説!
- C#WPFの道#2!StackPanelの使い方をわかりやすく解説!
- C#WPFの道#3!Gridの使い方をわかりやすく解説!
- C#WPFの道#4!コントロールの名前の付け方をわかりやすく解説!
- C#WPFの道#5!イベントの定義の仕方をわかりやすく解説!
- C#WPFの道#6!リソースとStaticResourceの定義と使い方をわかりやすく解説!
- C#WPFの道#7!コントロールのスタイル定義のやり方をわかりやすく解説!
- C#WPFの道#8!グループごとのスタイル定義とBasedOnでの継承のやり方!
- C#WPFの道#9!SQLiteの使い方をわかりやすく解説!
- C#WPFの道#10!ListViewの使い方をわかりやすく解説!
- C#WPFの道#11!ListViewのフィルタリングの方法を解説!
- C#WPFの道#12!SQLiteとListViewでマスタ設定画面の作成!
- C#WPFの道#13!Buttonに画像と文字を並べる方法とRepeatButtonとToggleButton
- C#WPFの道#14!CheckBoxとIsThreeState、Indeterminateの使い方
- C#WPFの道#15!RadioButtonの書き方と使い方を解説
- C#WPFの道#16!Expanderの書き方と使い方を解りやすく解説
- C#WPFの道#17!GroupBoxの書き方と使い方を解りやすく解説
- C#WPFの道#18!Slider(スライダー)の書き方と使い方を解りやすく解説
- C#WPFの道#19!ProgressBarの書き方と使い方を解りやすく解説
- C#WPFの道#20!ComboBoxの書き方と使い方を解りやすく解説
- C#WPFの道#21!ListBoxの書き方と使い方を解りやすく解説
- C#WPFの道#22!TabControlの書き方と使い方を解りやすく解説
- C#WPFの道#23!TreeViewの書き方と使い方を解りやすく解説
- C#WPFの道#24!TextBlock,TextBoxの改行と文字の加工を解説
- C#WPFの道#25!Menuの書き方と使い方をわかりやすく解説!
- C#WPFの道#26!ToolBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#27!StatusBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#28!WrapPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#29!DockPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#30!Canvasの書き方と使い方をわかりやすく解説!