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

スポンサーリンク

ツールバーは右端にオーバーフローパネルと呼ばれるパネル(▼矢印をクリックしたときに表示されるエリア)を持っており、添付プロパティの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);
タイトルとURLをコピーしました