概要
TabControlで、
タブを右から順に配置する。
或いは、タブを右側、左側、下側に配置する。
コード
XAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
<Window x:Class="TabControl.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:TabControl" mc:Ignorable="d" Title="MainWindow" Height="345.896" Width="441.791"> <Grid> <TabControl x:Name="tabControl" HorizontalAlignment="Left" Height="295" Margin="10,10,0,0" VerticalAlignment="Top" Width="414"> <TabItem Header="タブ右から"> <Grid Background="#FFE5E5E5"> <!--タブを右寄せで右から順に配置。--> <TabControl x:Name="tabControl1" FlowDirection="RightToLeft" HorizontalAlignment="Left" Height="247" Margin="10,10,0,0" VerticalAlignment="Top" Width="388"> <TabItem Header="TabItem"> <Grid Background="#FFE5E5E5"/> </TabItem> <TabItem Header="TabItem"> <Grid Background="#FFE5E5E5"/> </TabItem> </TabControl> </Grid> </TabItem> <TabItem Header="タブ右側配置"> <Grid Background="#FFE5E5E5"> <!--タブをグリッドの右側に上から順に配置。--> <TabControl x:Name="tabControl2" TabStripPlacement="right" HorizontalAlignment="Left" Height="247" Margin="10,10,0,0" VerticalAlignment="Top" Width="388"> <TabItem Header="TabItem"> <Grid Background="#FFE5E5E5"/> </TabItem> <TabItem Header="TabItem"> <Grid Background="#FFE5E5E5"/> </TabItem> </TabControl> </Grid> </TabItem> <TabItem Header="課題 タブ右側下から配置したかった・・・"> <Grid Background="#FFE5E5E5"> <!--課題--> <!--タブをグリッドの右側に下から順に配置したかったが出来ず。--> <!--マージンの設定で無理やり位置を調整することできるが、スマートじゃない。--> <TabControl x:Name="tabControl3" TabStripPlacement="right" HorizontalAlignment="Left" Height="247" Margin="10,10,0,0" VerticalAlignment="Top" Width="388"> <TabItem Header="TabItem" VerticalContentAlignment="Bottom" Margin="0,79,-2,-83"> <Grid Background="#FFE5E5E5"/> </TabItem> <TabItem Header="TabItem" Margin="0,201,-2,-205"> <Grid Background="#FFE5E5E5"/> </TabItem> </TabControl> </Grid> </TabItem> </TabControl> </Grid> </Window> |
ポイント
15行目: FlowDirection=”RightToLeft” でタブを右から順に配置する。
30行目: TabStripPlacement=”Right” でタブを右側に配置する。
Right部分はBottomやLeftで下側、左側に配置可能。
課題
グリッドの右側に下から順に配置したいが、現状スマートな方法わからず。
参考
(今後の課題) タブコントロールのカスタムコントロールを作る
[] 片鱗懐古のブログ: wpf : TabControlのタブの左右にパネルを配置
wpf : TabControlのタブの左右にパネルを配置
タブを扱うアプリケーションで、タブの左右にコントロールを置きたいケースは多々あります。 例えば、タブの操作をするボタンを付けたり、省スペースのためタブの右側にツールバーを置いたりです。 実際にそういうレイアウトのアプリケーションは多くありますが、wpfのデフォルトのT...
コメント