2011-12-14 7 views
4

WPF ToolbarTrayコントロール内で約10〜15個のコントロールを使用しています。現在、解像度を変更している間に問題が発生しています。 Maximizedウィンドウの場合の必要性。詳細については、以下のスクリーンショットを添付しました。wpf toolbartrayで使用可能なスペースに応じて幅を調整する方法

もともと登場ツールバートレイコントロール: Toolbar Tray control appearing originally

ツールバートレイは、(私がしようとしていますどの)のように表示される必要があります。 Toolbar Tray need to appear like this

誰がどのように達成するためにカスタマイズするか、何をすべきかを教えてもらえますToolbarTrayのような2番目の画像です。助けていただければ幸いです。私の知る限りToolbarTrayがかなり限定されているようこれは、箱から出しできません知っているよう

<ToolBarTray Background="White"> 
    <ToolBar> 

     <Button 
     Width="50" Content="hi"/> 
     <Button 
     Width="100" Content="bye"/> 
     <Button 
     Content="welcome"/> 
     <Button 
     Width="20"/> 
     <Button Content="Welcome"/> 
     <Separator /> 
     <Button 
     ToolBar.OverflowMode="Always" Content="save" /> 
     <Button 
     ToolBar.OverflowMode="Always" Content="open" /> 
     <Button 
     ToolBar.OverflowMode="AsNeeded" Content="bmp" /> 
    </ToolBar> 
    <ToolBar HorizontalAlignment="Right"> 
     <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> 
      <Button Content="New Hi1"/> 
      <Button Content="New Hi2"/> 
      <Button Content="New Hi3"/> 
     </StackPanel> 
    </ToolBar> 
</ToolBarTray> 

+0

あなたのXAMLを投稿してくださいもらえますか? – Dror

+0

@Orchestrator:XAMLコードで更新しました – SharpUrBrain

答えて

1

私の問題の解決策を見つけたので、今度はToolBarコントロール内のグリッドを使用して、グリッド(toolbarGrid)の1つの列のサイズを調整して、2番目の画像に表示されるコントロールを作成します。

コード:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0"/> 
    <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 

<Stackpanel 
    Grid.Column ="0"> 

    <Button Width="50" Content="hi"/> 
     <Button Width="100" Content="bye"/> 
     <Button Content="welcome"/> 
     <Button Width="20"/> 
     <Button Content="Welcome"/> 
     <Separator /> 
     <Button ToolBar.OverflowMode="Always" Content="save" /> 
     <Button ToolBar.OverflowMode="Always" Content="open" /> 
     <Button ToolBar.OverflowMode="AsNeeded" Content="bmp" /> 
</StackPanel> 

    <ToolBarTray x:Name ="toolBarTray" Grid.Column ="1" HorizontalAlignment ="Right" IsLocked="True"> 

     <!--First Toolbar for the controls from Print to Zoom Control--> 
     <ToolBar x:Name ="topToolBar" FocusVisualStyle="{x:Null}"> 
      <Grid x:Name="toolbarGrid"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="0"/> 
        <ColumnDefinition Width="Auto"/> 
       </Grid.ColumnDefinitions> 
       <Button Content="New Hi1"/> 
       <Button Content="New Hi2"/> 
       <Button Content="New Hi3"/> 
      </Grid> 
     </ToolBar> 
    </ToolBarTray> 
</Grid> 
+0

On Wondow.SizeChangedイベントToolBarGridの列幅のサイズを変更していますが、ウィンドウのサイズ変更中に正確な値が取得されないたびに、誰かが問題を解決する方法を知っていますか? – SharpUrBrain

4

:事前に

おかげで、

更新そのレイアウトオプション。

あなたができることは、レイアウトを行うためにツールバーをDockPanelにラップすることです。しかし、ツールバーの位置をドラッグアンドドロップで変更するようなものはありません。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="50"></RowDefinition> 
     <RowDefinition Height="*"></RowDefinition> 
    </Grid.RowDefinitions> 
     <DockPanel Grid.Row="0" Background="White"> 
     <ToolBar DockPanel.Dock="Left"> 
     .... 
     </ToolBar> 
     <ToolBar DockPanel.Dock="Right" HorizontalAlignment="Right" HorizontalContentAlignment="Stretch"> 
     ... 
     </ToolBar> 
    </DockPanel> 
+0

このDockPanelをToolBarTray内で使用することはできません。そのDockPanelではToolBarの両方を使用できませんか? – SharpUrBrain

+0

いいえ、ToolbarTrayはコンテンツとしてToolBarsを許可します – SvenG

+0

はい、しかし、最初のツールバーは2番目のツールバーではなく修正したいと思います。ウィンドウを右からサイズにドラッグする間、2番目のツールバーは使用可能なスペースに従って動作します。 – SharpUrBrain

0

単純な答えは、アプリケーションの一番上の「線」に灰色の背景を描くことではありませんか?

関連する問題