Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF分隔符背景色保持灰色_C#_Wpf_Separator - Fatal编程技术网

C# WPF分隔符背景色保持灰色

C# WPF分隔符背景色保持灰色,c#,wpf,separator,C#,Wpf,Separator,我有一个带分隔符的WPF菜单,我希望它是黑色的,1像素宽。然而,分隔符似乎有一个内置的30像素宽的缓冲空间,我不能改变它的颜色。在下面的示例中,我将分隔符设置为50像素宽——正如您所看到的,前30个像素没有反映正确的背景颜色。非常讨厌!我错过了什么 以下是XAML: <Menu DockPanel.Dock="Top" FontSize="45" Height="62" Name="Menu"> <MenuItem Header="_H

我有一个带分隔符的WPF菜单,我希望它是黑色的,1像素宽。然而,分隔符似乎有一个内置的30像素宽的缓冲空间,我不能改变它的颜色。在下面的示例中,我将分隔符设置为50像素宽——正如您所看到的,前30个像素没有反映正确的背景颜色。非常讨厌!我错过了什么

以下是XAML:

        <Menu DockPanel.Dock="Top" FontSize="45" Height="62" Name="Menu">
            <MenuItem Header="_Home" Name="HomeMenuItem" Click="HomeMenuItem_Click" Padding="10,0,10,0"></MenuItem>
            <Separator Width="50" Background="Black" Foreground="Black" BorderThickness="0" Margin="0" Padding="0"></Separator>
            <MenuItem Header="_Print" Name="PrintMenuItem" Click="PrintMenuItem_Click" Padding="10,0,10,0"></MenuItem>
            ...

...

显示菜单的控制模板自动包含分隔符的边距。感谢您,我现在了解到ControlTemplate覆盖了样式。然后,解决方案是向Application.Resources添加自定义模板。(我相信在Windows.Resources等环境下这样做会很好。)


然后在主XAML窗口中引用自定义控件模板,如下所示:

<Separator Width="1" Style="{StaticResource SeparatorStyle}"></Separator>

<Separator Width="1" Style="{StaticResource SeparatorStyle}"></Separator>