SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――ツールバー機能

(11) ToolBarコントロールとToolBarTrayコントロール


ダウンロード ToolBar_WPF_VB.zip (74.6 KB)
ダウンロード ToolBar_WPF_CS.zip (70.6 KB)

04.コントロールのオーバーフローモードを設定する

 ツールバーは右端にオーバーフローパネルと呼ばれるパネル(▼矢印をクリックしたときに表示されるエリア)を持っており、添付プロパティのOverflowModeを設定することで、コントロールがパネルに表示されるタイミングを設定することができます。

 OverflowModeプロパティにはOverflowMode列挙体の値を指定します。

OverflowMode列挙体
メンバ名 説明
AsNeeded コントロールがツールバーに表示しきれない場合は、オーバーフローパネルに表示します
Always 常にオーバーフローパネルに表示します
Never オーバーフローパネルに表示しません

 下記は、各コントロールにオーバーフローモードを設定する例です。

コントロールのオーバーフローモードを設定する例
コントロールのオーバーフローモードを設定する例
XAMLの例
<DockPanel Name="DocPanel1">
    <ToolBar DockPanel.Dock="Top">
        <Button ToolTip="新規作成" ToolBar.OverflowMode="AsNeeded">
            <Image Source="Images/NewDocument.png" Width="16" Height="16" />
        </Button>
        <Button ToolTip="保存" ToolBar.OverflowMode="AsNeeded">
            <Image Source="Images/Save.png" Width="16" Height="16" />
        </Button>
        <Separator />
        <TextBlock VerticalAlignment="Center"
                    ToolBar.OverflowMode="Never">フォントサイズ</TextBlock>
        <ComboBox Width="50" ToolTip="フォントサイズ"
                    ToolBar.OverflowMode="Never">
            <ComboBoxItem IsSelected="True">10pt</ComboBoxItem>
            <ComboBoxItem>11pt</ComboBoxItem>
            <ComboBoxItem>12pt</ComboBoxItem>
        </ComboBox>
        <Button ToolTip="太字" ToolBar.OverflowMode="Always">
            <Image Source="Images/boldhs.png" Width="16" Height="16" />
        </Button>
        <Button ToolTip="斜体" ToolBar.OverflowMode="Always">
            <Image Source="Images/Italichs.png" Width="16" Height="16" />
        </Button>
    </ToolBar>
    <TextBox></TextBox>
</DockPanel>
VBの例
'XAMLではなくコードでオーバーフローモードを設定する場合は下記のようにします
'新規作成ボタンにオーバーフローモードを設定する例です

Dim toolBar1 As New Controls.ToolBar    'ツールバー
Dim btnNewDocument As New Button        '[新規作成]ボタン

'[新規作成]ボタンの作成
Dim bmpImgNewDoc As New BitmapImage()
Dim imgNewDoc As New Image
bmpImgNewDoc.BeginInit()
bmpImgNewDoc.UriSource = New Uri("Images/NewDocument.png", UriKind.Relative)
bmpImgNewDoc.EndInit()
imgNewDoc.Source = bmpImgNewDoc
imgNewDoc.Width = 16 : imgNewDoc.Height = 16
btnNewDocument.ToolTip = "新規作成"
btnNewDocument.Content = imgNewDoc        
'[新規作成]ボタンをツールバーに追加
toolBar1.Items.Add(btnNewDocument)
'★★★オーバーフローモードの設定★★★
Controls.ToolBar.SetOverflowMode(btnNewDocument, OverflowMode.AsNeeded)
C#の例
// XAMLではなくコードでオーバーフローモードを設定する場合は下記のようにします
// 新規作成ボタンにオーバーフローモードを設定する例です

//System.Windows.Controls.ToolBar toolBar1 =
//    new System.Windows.Controls.ToolBar();
//Button btnNewDocument = new Button();   // [新規作成]ボタン

// [新規作成]ボタンの作成
BitmapImage bmpImgNewDoc = new BitmapImage();
Image imgNewDoc = new Image();
bmpImgNewDoc.BeginInit();
bmpImgNewDoc.UriSource = new Uri("Images/NewDocument.png", UriKind.Relative);
bmpImgNewDoc.EndInit();
imgNewDoc.Source = bmpImgNewDoc;
imgNewDoc.Width = 16; imgNewDoc.Height = 16;
btnNewDocument.ToolTip = "新規作成";
btnNewDocument.Content = imgNewDoc;
// [新規作成]ボタンをツールバーに追加
toolBar1.Items.Add(btnNewDocument);
//★★★オーバーフローモードの設定★★★
System.Windows.Controls.ToolBar.SetOverflowMode(btnNewDocument, OverflowMode.AsNeeded);
ポイント

 オーバーフローモードを設定するには、添付プロパティのOverflowModeを使用する。

05.ツールバーを無効にする

 ツールバーを無効にするにはToolBarクラスIsEnabledプロパティにFalseを設定します。

 下記はツールバーを無効にする例です。

ツールバーを無効にする例
ツールバーを無効にする例
XAMLの例
<DockPanel Name="DocPanel1">
    <ToolBar Name="ToolBar1" DockPanel.Dock="Top" IsEnabled="False">
        <Button ToolTip="新規作成">
            <Image Source="Images/NewDocument.png" Width="16" Height="16" />
        </Button>
        <Button ToolTip="保存">
            <Image Source="Images/Save.png" Width="16" Height="16" />
        </Button>
        <Separator />
        <TextBlock VerticalAlignment="Center">フォントサイズ</TextBlock>
        <ComboBox Width="50" ToolTip="フォントサイズ">
            <ComboBoxItem IsSelected="True">10pt</ComboBoxItem>
            <ComboBoxItem>11pt</ComboBoxItem>
            <ComboBoxItem>12pt</ComboBoxItem>
        </ComboBox>
        <Button ToolTip="太字">
            <Image Source="Images/boldhs.png" Width="16" Height="16" />
        </Button>
        <Button ToolTip="斜体">
            <Image Source="Images/Italichs.png" Width="16" Height="16" />
        </Button>
    </ToolBar>
    <TextBox></TextBox>
</DockPanel>
VBの例
'XAMLではなくコードから無効にする場合は下記のようにします

'ツールバーを無効にする
ToolBar1.IsEnabled = False
C#の例
// XAMLではなくコードから無効にする場合は下記のようにします

//ツールバーを無効にする
ToolBar1.IsEnabled = false;
ポイント

 ツールバーを無効にするにはIsEnabledプロパティにFalseを設定する。

次のページ
06.ツールバートレイを使用して複数のツールバーを表示する

この記事は参考になりましたか?

Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5827 2011/03/24 23:33

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー