想要匹配按钮的默认背景颜色,以便在扩展器中使用 按钮的默认背景颜色是什么?
我尝试过什么? 很多不同的颜色,但没有找到匹配。
答案 0 :(得分:11)
Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
答案 1 :(得分:4)
在WPF中,您可以右键单击元素并选择“编辑模板”,这将创建控件正在使用的确切模板,包括背景颜色。然后,您可以将相同的生成背景颜色应用于您想要的任何控件。
或者,您可以转到控制画笔属性并单击小方块并选择“转换为新资源”,如果您只是想要复制单个画笔。然后将新生成的画笔应用于您想要的任何元素。
导致以下
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<LinearGradientBrush x:Key="Brush1" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB" Offset="0.5"/>
<GradientStop Color="#FFDDDDDD" Offset="0.5"/>
<GradientStop Color="#FFCDCDCD" Offset="1"/>
</LinearGradientBrush>
</Window.Resources>
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="151,139,0,0" VerticalAlignment="Top" Width="75" Background="{DynamicResource Brush1}"/>
<Expander Header="Expander" HorizontalAlignment="Left" Margin="412,129,0,0" VerticalAlignment="Top" Background="{DynamicResource Brush1}">
<Grid Background="#FFE5E5E5"/>
</Expander>
</Grid>
答案 2 :(得分:2)
WPF将根据操作系统应用不同的颜色/形状。因此,没有一种默认颜色。但是,至于参考,请检查button controltemplate page。你应该找到静态资源WindowBackgroundBrush,DisabledBackgroundBrush和SelectedBackgroundBrush
答案 3 :(得分:2)
Here are the predefined brushes that wpf controls are using
您仍然需要找到Button控件使用哪一个,您可以通过使用Blend编辑Button模板来实现。
根据具体情况,您可能需要将画笔引用为
"{DynamicResource {x:Static SystemColors.ControlLightLightColorKey}}"
或任何刷子。
<强> EDIT1:强> 如果我没弄错,WindowBrush资源就是Button控件用于默认背景的资源。
<强> EDIT2 强> 不要忘记默认的Button模板还包含一个chrome对象,它会对最终布局产生一些影响。
答案 4 :(得分:0)
你可以使用'Color to Html'它是一个不错的应用程序,你有一个工具从桌面提取任何颜色Colour to Html
答案 5 :(得分:0)
Blam的答案有效,但是“dynamic reference to the control system brush”,所以在我的情况下,因为我的按钮嵌套在一个禁用的堆栈面板中,当我使用Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
时,它导致我的按钮成为一个即使启用了堆叠面板(因此按钮),也会呈灰色。显然它会动态地将我的按钮设置为“禁用灰色”颜色,但在启用时不会动态地将其更改为全彩模式。
正如我的链接所示,您可以使用以下方式获取对按钮的静态引用:
Background="{DynamicResource {x:Static SystemColors.ControlBrush}}"
请注意,唯一的区别是使用ControlBrush
而不是ControlBrushKey
。这样做可以使我的按钮在禁用时开始呈灰色,但在启用时则为全彩色。