首页 > 解决方案 > TemplateBinding 填充到边框不适用于我的按钮

问题描述

TemplateBindingfor my中 a ( )的Padding属性不起作用(它填充and the only 但不是 the and the )。BorderbdInnerControlTemplateButtonLeftRightTopBottom

我已经尝试TemplateBindingPadding那个边框改为BorderThickness我的模板,这确实有效吗?!

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="#ECECEC" />
    <Setter Property="Foreground" Value="Black" />
    <Setter Property="Padding" Value="10,5,10,5" />
    <Setter Property="Cursor" Value="Hand" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="3" BorderThickness="1" BorderBrush="Black" SnapsToDevicePixels="True" Background="White" x:Name="bdOuter">
                    <Border x:Name="bdInner" CornerRadius="2" Padding="{TemplateBinding Padding}">
                        <Border.Background>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                                <GradientStop Color="#FFFFFF" Offset="0.0" />
                                <GradientStop Color="#D1D1D1" Offset="0.05" />
                                <GradientStop Color="#EDEDED" Offset="0.5"  />
                                <GradientStop Color="#D1D1D1" Offset="0.95"  />
                                <GradientStop Color="#FFFFFF" Offset="1.0"  />
                            </LinearGradientBrush>
                        </Border.Background>
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="bdOuter" Property="Background" Value="#178140" />
                        <Setter TargetName="bdInner" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                                    <GradientStop Color="#FFFFFF" Offset="0.0" />
                                    <GradientStop Color="#D1BBE3B6" Offset="0.05" />
                                    <GradientStop Color="#EDBBE3B6" Offset="0.5"  />
                                    <GradientStop Color="#D1BBE3B6" Offset="0.95"  />
                                    <GradientStop Color="#FFFFFF" Offset="1.0"  />
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="IsFocused" Value="True">
                        <Setter TargetName="bdOuter" Property="Background" Value="#178140" />
                        <Setter TargetName="bdInner" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                                    <GradientStop Color="#FFFFFF" Offset="0.0" />
                                    <GradientStop Color="#D1BBE3B6" Offset="0.05" />
                                    <GradientStop Color="#EDBBE3B6" Offset="0.5"  />
                                    <GradientStop Color="#D1BBE3B6" Offset="0.95"  />
                                    <GradientStop Color="#FFFFFF" Offset="1.0"  />
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="Button.IsPressed" Value="True">
                        <Setter TargetName="bdOuter" Property="Background" Value="#178140" />
                        <Setter TargetName="bdInner" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                                    <GradientStop Color="#FFFFFF" Offset="0.0" />
                                    <GradientStop Color="#D176C76D" Offset="0.05" />
                                    <GradientStop Color="#ED76C76D" Offset="0.5"  />
                                    <GradientStop Color="#D176C76D" Offset="0.95"  />
                                    <GradientStop Color="#FFFFFF" Offset="1.0"  />
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

是什么让它如此,我该如何帮助它?

标签: .netwpf

解决方案


推荐阅读