按钮的WPF样式模板

时间:2013-11-28 15:42:47

标签: wpf

我有一个WPF应用程序。我正在尝试自定义按钮。我已经部分实现了但是我似乎无法将我的按钮的背景设置为RadialGradientBrush。我真的看不出我做错了什么。我也不想要按钮的任何边框。

以下是我的代码。如果我有属性背景的值,它说令牌无效?

<Application.Resources>
 <RadialGradientBrush x:Key="brushSecurityButtRadial">
        <GradientStop Color="White" Offset="0"/>
        <GradientStop Color="Blue" Offset="0.3"/>
    </RadialGradientBrush>

<!-- style for button -->
    <Style x:Key="buttSecurity" TargetType="Button">
        <Setter Property="Margin" Value="1,2,1,2"/>
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="Background" Value="brushSecurityButtRadial"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">                    
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition Height="2*"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="GBP / USD" Style="{StaticResource txtSecurity}"/>
                        <Image Grid.Row="1" Grid.Column="0" Source="C:\Users\Mark\Documents\Visual Studio 2012\Country Flags\ICO\GBP.ico"/>
                        <Image Grid.Row="1" Grid.Column="1" Source="C:\Users\Mark\Documents\Visual Studio 2012\Country Flags\ICO\USD.ico"/>
                    </Grid>               
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</Application.Resources>

3 个答案:

答案 0 :(得分:1)

Value="{StaticResource brushSecurityButtRadial}"

答案 1 :(得分:1)

您为该按钮提供的模板会隐藏其背景。

将背景放入模板中的网格。

答案 2 :(得分:0)

你无法设置背景,因为你有一个绑定错误,你应该在输出窗口或使用snoop时看到。 您也可以使用Blend自动设置GradientBrush

 <Setter Property="Background" Value="{StaticResource brushSecurityButtRadial}"/>