かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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プロパティを保存・復元すればいいことがわかります。

過去記事