按钮只有点击图片或者文字区域有反应,点击中间空白区域或边缘的时候没反应,导致按钮经常点击不上。
源代码如下:
<UserControl.Resources>
<s:StringToSource x:Key="string_to_source"></s:StringToSource>
<ControlTemplate x:Key="TButton" TargetType="{x:Type Button}">
<Border x:Name="Tborder" BorderThickness="1" CornerRadius="3" BorderBrush="#999999">
<StackPanel Orientation="Horizontal" x:Name="spT">
<Image Height="22" Width="22" Margin="5,0" Source="{TemplateBinding Tag, Converter={StaticResource ResourceKey=string_to_source}}"></Image>
<TextBlock x:Name="txtReg" Text="{TemplateBinding Content}" VerticalAlignment="Center" Margin="10,0"></TextBlock>
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Tborder" Property="BorderThickness" Value="2"></Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Tborder" Property="BorderThickness" Value="2"></Setter>
<Setter TargetName="txtReg" Property="FontWeight" Value="bold"></Setter>
<Setter TargetName="spT" Property="Background" Value="#999999"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</UserControl.Resources>
<Button x:Name="btnRegister" Grid.Row="3" Height="25" Width="100" Content="注册" Margin="100,0" Tag="/LCAControlManagement;component/Image/register.png" Template="{StaticResource ResourceKey=TButton}"></Button>
解决方案:
在模板boder中加入整体背景。
<ControlTemplate x:Key="TButton" TargetType="{x:Type Button}">
<Border x:Name="Tborder" BorderThickness="1" CornerRadius="3" Background="#FFF5EFEF" BorderBrush="#999999">
<StackPanel Orientation="Horizontal" x:Name="spT">
<Image Height="22" Width="22" Margin="5,0" Source="{TemplateBinding Tag, Converter={StaticResource ResourceKey=string_to_source}}"></Image>
<TextBlock x:Name="txtReg" Text="{TemplateBinding Content}" VerticalAlignment="Center" Margin="10,0"></TextBlock>
</StackPanel>
</Border>
完美解决!