2010-05-04 104 views

回答

4

溢流按鈕不幸具有固定的背景。更確切地說,它在默認模板中設置爲靜態值。如果您想獲得它們的副本,請參閱this MSDN forum threadMSDN。或This tool from Chris Sells

在模板中,您將看到一個用於顯示/隱藏溢出面板的ToggleButton。這是需要改變才能產生效果的那個人。

因此,您的問題的答案是,您需要在XAML中包含工具欄的完整樣式,並將該按鈕的背景更改爲與工具欄的其餘部分相同。

+0

感謝您的回答! – antongladchenko 2010-05-05 06:14:26

1

我遇到了上述的問題。我的解決方案如下:

using System.Windows.Controls.Primitives; 
using System.Windows.Media; 

namespace WPF.Controls 
{ 
    public class ToolBar : System.Windows.Controls.ToolBar 
    { 
     public override void OnApplyTemplate() 
     { 
      base.OnApplyTemplate(); 

      var overflowPanel = base.GetTemplateChild("PART_ToolBarOverflowPanel") as ToolBarOverflowPanel; 
      if (overflowPanel != null) 
      { 
       overflowPanel.Background = OverflowPanelBackground ?? Background; 
       overflowPanel.Margin = new Thickness(0); 
      } 
     } 

     public Brush OverflowPanelBackground 
     { 
      get; 
      set; 
     } 
    } 
} 

XAML樣本:

<Window 
    x:Class="WPF.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:src="clr-namespace:WPF.Controls"> 

<ToolBarTray Background="White"> 
    <wpf:ToolBar Background="Pink" OverflowPanelBackground="Peru" Band="1" BandIndex="1" Width="50"> 
     <Button Content="Cut" /> 
     <Button Content="Copy" /> 
     <Button Content="Paste" /> 
    </wpf:ToolBar> 
    <wpf:ToolBar Background="Aqua" Band="2" BandIndex="1" Width="70"> 
     <Button Content="Undo" /> 
     <Button Content="Redo" /> 
    </wpf:ToolBar> 
    <wpf:ToolBar OverflowPanelBackground="Yellow" Band="2" BandIndex="2" Width="100"> 
     <Button Content="Paint"/> 
     <Button Content="Spell"/> 
     <Separator/> 
     <Button Content="Save"/> 
     <Button Content="Open"/> 
    </wpf:ToolBar> 
</ToolBarTray> 

</Window> 
+0

它的工作原理,溢流區現在有了新的背景。溢出按鈕仍然是難看的嬰兒藍色。我想我仍然需要更改整個模板。 – 2017-04-18 12:00:23

相關問題