かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

WPF4.5入門 その31 「ToolBarコントロール」

ToolBarコントロールは、名前の通り、アプリケーションのツールバーを実装するためのコントロールです。ToolBarコントロールは、ToolBarTrayコントロール内に配置する形で実装します。ToolBarTrayには複数のToolBarコントロールを設置でき、ユーザーはマウスを使ってToolBarコントロールの位置を移動させることが出来ます。 以下にToolBarTrayコントロールにToolBarコントロールを2つ置いて、その中にButtonやCheckBoxやToggleButtonを置いた例を以下に示します。ToolBarコントロール内の縦線は、Separatorコントロールを使用しています。

f:id:okazuki:20140812214936p:plain

CheckBoxコントロールとToggleButtonコントロールは、クリックをしてチェックをつけた状態にしています。画面上で色が変わっていることが確認できます。上記の画面のXAMLを以下に示します。

<ToolBarTray>
    <ToolBar>
        <Button Content="item1" />
        <Button Content="item2" />
        <Button Content="item3" />
        <Separator />
        <Button Content="item4" />
        <CheckBox Content="item5" />
    </ToolBar>
    <ToolBar>
        <Button Content="item6" />
        <Button Content="item7" />
        <Button Content="item8" />
        <Separator />
        <ToggleButton Content="item9" />
    </ToolBar>
</ToolBarTray>

ToolBarコントロールの位置の制御

ToolBarコントロールは、ToolBarTrayコントロールに複数ある場合ユーザーによって並び替えることができます。これを制御するプロパティが、ToolBarコントロールのBandプロパティとBandIndexプロパティになります。

プロパティ 説明
public int Band { get; set; } ToolBarTrayコントロールのOrientationプロパティがHorizontalの場合に、ToolBarコントロールを何行目に表示するかを表す。ToolBarTrayコントロールのOrientationプロパティがVerticalの場合にToolBarコントロールの何列目に表示するかを表す。
public int BandIndex { get; set; } ToolBarTrayコントロールのOrientationプロパティがHorizontalの場合に、ToolBarコントロールを何列目に表示するかを表す。ToolBarTrayコントロールのOrientationプロパティがVerticalの場合にToolBarコントロールの何行目に表示するかを表す。

以下にToolBarコントロールを2つおいて、それぞれのBandプロパティとBandIndexプロパティを表示するプログラムの実行例を示します。ToolBarコントロールを並び替えると、それに応じてBandプロパティとBandIndexプロパティの値が変わっていることが確認できます。

f:id:okazuki:20140812215131p:plain

f:id:okazuki:20140812215155p:plain

ユーザーが並び替えたToolBarコントロールの状態を保持するには各ToolBarコントロールのBandプロパティとBandIndexプロパティを保存・復元すればいいことがわかります。

過去記事