2011-12-14 71 views
4

我在WPF ToolbarTray控件中使用了大約10-15個控件,現在問題出在我更改分辨率時,控件中存在的控件根據我的需要在最大化窗口的情況下。有關更多詳細信息,請參閱下面的截圖。如何根據可用空間調整寬度wpf toolbartray

任務欄托盤控制出現的最初: Toolbar Tray control appearing originally

任務欄托盤需要出現這樣的(這我想): Toolbar Tray need to appear like this

誰能告訴我如何自定義或怎樣做才能實現第二個圖像像ToolbarTray.Any幫助表示讚賞。

由於提前,

更新:

<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控件中使用一個Grid並調整Grid的一列的大小(toolbarGrid),使我的控件在我的第二個Image中看到。

代碼:

<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

據我知道這是不可能的開箱即用,作爲ToolbarTray是相當有限其佈局選項。

你可以做的是將工具欄包裝在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

我們不能在ToolBarTray中使用這個DockPanel並且在DockPanel中都使用ToolBar嗎? – SharpUrBrain

+0

不,工具欄只允許工具欄作爲內容 – SvenG

+0

是的,但我想修復第一個工具欄而不是第二個工具欄。雖然我會從右側拖動我的窗口重新調整大小,但第二個工具欄將根據可用空間運行。 – SharpUrBrain

0

簡單的答案不會是在您的應用程序的頂部「行」中繪製灰色背景?

相關問題