为什么System.Windows.Controls.Button的填充总是10px?

时间:2010-10-18 05:09:30

标签: silverlight user-controls button padding

查看截图。边界青色边框是按钮,蓝色填充是矩形。我不能为我的生活弄清楚如何摆脱按钮中的填充。有没有办法将矩形定位在左上方,以便接触青色边框?

alt text

感谢。

3 个答案:

答案 0 :(得分:7)

您是否尝试将Rectangle的保证金设为0

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0" Width="96" Height="96">
    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
</Button>

编辑:填充必须来自按钮控件模板。尝试使用自定义模板:

<Style x:Key="MyButton" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <Rectangle Fill="Blue" Margin="0" Width="96" Height="96" />
                </Grid>
           </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Button x:Name="Button" BorderThickness="0" Margin="0" Padding="0"
    Width="96" Height="96" Style="{StaticResource MyButton}" />

答案 1 :(得分:1)

解决方法:

绘制一个矩形并向其添加onclick。

答案 2 :(得分:0)

我无法产生那种明显的行为,但我想知道,你会在Windows Phone应用程序中进行开发吗?

如果是这样,您最有可能看到的不是Padding的结果,而是“PhoneTouchTargetOverhang”的结果。这是App.xaml中的Thickness资源,“PhoneButtonBase”样式用于按钮的外边框Margin

这实际上是Windows Phone 7应用于按钮的默认样式的副本。要替换它,您需要实际指定您的按钮使用“PhoneButtonBase”样式然后更改“PhoneTouchTargetOverhang”的值。这将使用此样式更新任何按钮。