0

VS2012 >> 新的 Silverlight 项目 >>

<UserControl x:Class="SilverlightApplication2.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" >
        <Button Background="Red" />
    </Grid>
</UserControl>
  • silverlight 按钮默认模板发生了某种变化。我如何重置并恢复为默认值?
  • WPF按钮背景工作正常
  • 只有按钮问题,目前其他控件没有这个问题

在此处输入图像描述

4

2 回答 2

1

就像@Alex 所说,渐变是按钮使用的模板的结果。无论您将背景设置为哪种颜色,它都会显示渐变。

改变这种情况的一种方法是按照@Alex 的建议修改模板。

另一种方法是将按钮的内容设置为网格,然后将网格设置为您想要的任何纯色。

<Button Height="100" Click="OnClick" Width="100">
            <Button.Content>
                <Grid Height="100" Width="100" IsHitTestVisible="False" Background="Blue"/>
            </Button.Content>
        </Button>
于 2013-10-01T21:51:27.177 回答
0

这一切都取决于按钮的模板。我猜默认模板顶部有一些层可以模拟半透明阴影或类似的东西。将控件模板替换为更简单的模板,它应该可以工作。您可以在 MSDN 上找到默认模板,您可以只修改按钮一个而不是从头开始:http: //msdn.microsoft.com/en-us/library/cc278069 (v=vs.95).aspx

具体来说,我猜这部分是渐变:

<Border x:Name="Background" CornerRadius="3" Background="White" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
    <Grid Background="{TemplateBinding Background}"  Margin="1">
        <Border Opacity="0"  x:Name="BackgroundAnimation" Background="#FF448DCA" />
        <Rectangle x:Name="BackgroundGradient" >
            <Rectangle.Fill>
                <LinearGradientBrush StartPoint=".7,0" EndPoint=".7,1">
                    <GradientStop Color="#FFFFFFFF" Offset="0" />
                    <GradientStop Color="#F9FFFFFF" Offset="0.375" />
                    <GradientStop Color="#E5FFFFFF" Offset="0.625" />
                    <GradientStop Color="#C6FFFFFF" Offset="1" />
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
     </Grid>
</Border>
于 2013-10-01T08:55:50.517 回答