出現問題。當我改變WPF工具欄的背景色時,右上角的溢出按鈕不會改變顏色。如何解決它?WPF工具欄中OverFlowButton的顏色
實施例: alt text http://biztimes.ru/toolbar.jpg
出現問題。當我改變WPF工具欄的背景色時,右上角的溢出按鈕不會改變顏色。如何解決它?WPF工具欄中OverFlowButton的顏色
實施例: alt text http://biztimes.ru/toolbar.jpg
溢流按鈕不幸具有固定的背景。更確切地說,它在默認模板中設置爲靜態值。如果您想獲得它們的副本,請參閱this MSDN forum thread或MSDN。或This tool from Chris Sells
在模板中,您將看到一個用於顯示/隱藏溢出面板的ToggleButton。這是需要改變才能產生效果的那個人。
因此,您的問題的答案是,您需要在XAML中包含工具欄的完整樣式,並將該按鈕的背景更改爲與工具欄的其餘部分相同。
感謝您的回答! – antongladchenko 2010-05-05 06:14:26
我遇到了上述的問題。我的解決方案如下:
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>
它的工作原理,溢流區現在有了新的背景。溢出按鈕仍然是難看的嬰兒藍色。我想我仍然需要更改整個模板。 – 2017-04-18 12:00:23
我在WPF一個新手。你能發佈代碼,你是如何做到的,antongladchenko?幾行代碼對於快速入門會更好。謝謝! – GRF 2011-01-07 14:26:57