我是WPF新手,所以我相信这将是许多问题中的第一个!
我有一系列切换按钮,都有自定义模板,用于显示具有透明背景的图像,当用户切换按钮时,图像就会变亮。
我想在内容周围添加填充,以便高亮区域可以延伸到内容周围。尽管这样做是有效的,但用户仍然需要单击内部区域才能激活按钮,这不是我想要的。
我猜测这是因为我使用ContentPresenter
的Margin属性来绑定按钮的Padding,而这被视为内容之外,但不确定修复的最佳方法是什么。当取消选择按钮时,它确实有效。
以下是一些XAML代码,它展示了问题,可以直接复制并粘贴到XamlPad中。
<Page.Resources>
<Style x:Key="ValidationToggleButton" TargetType="ToggleButton">
<Setter Property="Padding" Value="5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate >
<Grid Name="MainGrid">
<Viewbox>
<ContentPresenter Margin="{TemplateBinding Padding}"
Content="{TemplateBinding Property=Button.Content}" />
</Viewbox>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ToggleButton.IsChecked" Value="True">
<Setter TargetName="MainGrid" Property="Background" Value="#88FFFF55" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<Grid>
<GroupBox Grid.Column="0" Header="Validation" BorderBrush="#55BBE6" Margin="2" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ToggleButton Grid.Column="0" Style="{StaticResource ValidationToggleButton}">
CLICK
</ToggleButton>
</Grid>
</GroupBox>
</Grid>
有没有人有任何想法,如何纠正这个问题?