我正在使用Blend for Visual Studio 2013创建一个自定义按钮。正如您从图像中看到的那样,按钮的左右两侧有一个额外的空间,我无法摆脱它。这源于ControlTemplate标记。
模板内部控件的宽度(如Grid,BottomRect,TopRect,ContentPresenter等)可以毫无问题地进行调整。拖动ControlTemplate的蓝色矩形不起作用。
我假设我需要以某种方式覆盖ControlTemplate的默认Width属性,但它是如何做到的?感谢。
答案 0 :(得分:0)
删除网格边距
....
<ControlTemplate TargetType="Button">
<Grid x:Name="grid" Margin="0" ...
...
EDITED
好的,那么你可以使用TemplateBinding
<Style x:Key="ButtonGameStyle" TargetType="Button">
<Setter Property="Width" Value="42" />
<Setter Property="Height" Value="42" />
<Setter Property="Margin" Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid x:Name="grid" Margin="{TemplateBinding Margin}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后您可以在按钮中设置宽度,高度和边距
<Button Style="{StaticResource ButtonGameStyle}" Width="20" Height="20" />