C# ToggleButton未填充该区域(windows phone)

C# ToggleButton未填充该区域(windows phone),c#,windows-phone-7,xaml,silverlight-4.0,C#,Windows Phone 7,Xaml,Silverlight 4.0,当我创建ToggleButton时,它不会填充网格中的所有区域。我认为这是因为按下区域比按钮的可视区域更大。如何使这些面积相等 <Grid Grid.Column="0"> <ToggleButton x:Name="ToggleHorizontal" IsChecked="False"/> </Grid> 默认情况下,切换按钮(不仅如此)在可见边框周围具有厚度为12 px的触摸

当我创建ToggleButton时,它不会填充网格中的所有区域。我认为这是因为按下区域比按钮的可视区域更大。如何使这些面积相等

    <Grid Grid.Column="0">
        <ToggleButton x:Name="ToggleHorizontal"
                      IsChecked="False"/>

    </Grid>

默认情况下,切换按钮(不仅如此)在可见边框周围具有厚度为12 px的触摸区域(PhoneTouchTargetOverhang常量,请参阅)。通过编辑混合中切换按钮的样式,可以看到这一点
因此,您可以将XAML中的边距值设置为-12:

<Grid Grid.Column="0">
    <ToggleButton x:Name="ToggleHorizontal" Margin="-12"
                  IsChecked="False"/>

</Grid>
以及您的切换按钮:

<Grid Grid.Column="0">
    <ToggleButton x:Name="ToggleHorizontal" Margin="-12" Style="{StaticResource ToggleButtonStyle}"
                  IsChecked="False"/>

</Grid


发布您的XAML代码将非常有用。或者您可以在切换按钮样式中将此常量更改为0。Margin=“{StaticResource PhoneTouchTargetOverhang}”到Margin=“0”在哪里可以执行此操作?您可以通过编辑混合中切换按钮的样式来查看并修复此问题。在Visual Studio中:项目->在混合中打开。“混合”打开后,选择切换按钮,右键单击该按钮,然后选择“编辑模板->编辑副本”。键入样式的名称,然后单击“确定”。之后,您可以在设计模式下编辑切换按钮样式,或者通过鼠标右键单击切换按钮并选择“查看源”转到XAML。这将打开XAML编辑器,您可以在其中固定边距值。修复后,保存项目并返回VisualStudio。或者查看我上面编辑的帖子,把添加的信息放到页面的参考资料部分。
<Grid Grid.Column="0">
    <ToggleButton x:Name="ToggleHorizontal" Margin="-12" Style="{StaticResource ToggleButtonStyle}"
                  IsChecked="False"/>

</Grid