我有Windows XP之前,并设置WPF按钮背景总是工作,但自从Windows 7的背景总是设置为蓝色。我怎么能解决这个问题?在Windows 7中的WPF按钮背景
1
A
回答
2
您可能需要为按钮制作自己的模板。 (我想这只是你正在努力的悬停颜色,而不是基本颜色,它遵循背景属性)。
这是一个非常简单的按钮模板,它可以帮助您开始。 BackBrush和ForeBrush将需要设置以适应。 (和他们的应用程序的其余部分的后退和前,所以他们向后看在这个例子中)
<Style TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="ClickMode" Value="Press"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
<Setter Property="BorderBrush" Value="#e9dbae" />
<Setter Property="Foreground" Value="{StaticResource BackBrush}" />
<Setter Property="Background" Value="{StaticResource ForeBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ButtonBase}">
<Border
x:Name="Border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="2"
CornerRadius="2"
SnapsToDevicePixels="False"
RenderTransformOrigin="0.5,0.5"
TextBlock.Foreground="{TemplateBinding Foreground}" >
<ContentPresenter
Margin="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="Border" Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="0.975" ScaleY="0.975" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#999999"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
1
对于有背景播放添加到Window.Resources(或任何其他应用程序资源字典)这种风格:
<Style TargetType="Button">
<Setter Property="Background" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Moccasin"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
如果您不需要重新定义按钮模板(按钮的几何外观),则此方法有效。这里我们没有指定Style x:Key
,那么这个样式将被应用于指定资源范围内的所有按钮。指定使用不同的外观风格,你应该每个样式标记与x:Key="StyleName"
然后在按钮定义样式Style="{DynamicResource StyleName}"
或Style="{DynamicResource StyleName}"
相关问题
- 1. wpf按钮背景变化
- 2. wpf按钮背景图片
- 3. 无法绑定背景按钮,在Windows Phone 7的
- 4. 按钮在Windows 7上有黑色背景
- 5. Windows Phone 7(WP7)点击更改按钮的背景颜色
- 6. 如何更改按钮和背景之间的按钮背景?
- 7. 如何在Windows Phone 7中使用WPF创建背景动画?
- 8. 点击时WPF按钮更改背景
- 9. 背景不改变按钮C#WPF
- 10. WPF按钮与外部背景图像
- 11. WPF:如何使按钮背景透明
- 12. 在Aero上重写WPF中的按钮背景
- 13. 在wpf中更改按钮模板的背景颜色
- 14. 如何在WPF中设置按钮的背景颜色
- 15. 'Unset'按钮背景
- 16. 图像在背景按钮
- 17. 带前景和背景的wpf按钮作为图像
- 18. Windows Phone 7按钮
- 19. WPF中不显示按钮的背景图像
- 20. 从背景类的按钮
- 21. 更改按钮的背景
- 22. 通过WPF中的MVVM模式更改按钮背景色
- 23. 按钮的透明背景
- 24. 改变动态创建按钮的背景在WPF
- 25. WPF在禁用窗口时更改按钮的背景颜色
- 26. 标签和按钮不在背景中
- 27. 按钮背景图片在swift 3中
- 28. 在ControlTemplate DataTrigger中更改按钮背景
- 29. Windows 7上的WinForms背景颜色
- 30. SWT按钮 - 删除按钮背景
属性“OverridesDefaultStyle”帮部分,现在我只用ismouseover问题。背景变化一秒钟然后变回蓝色。 – Sys 2010-07-28 13:06:21