我有一个“立方体”(Dice)控件,它来自Button
立方体:
public class Cube : Button
{
public Cube()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(Cube), new FrameworkPropertyMetadata(typeof(Cube)));
}
...... // Stuff
}
模板(一般):
<ControlTemplate TargetType="{x:Type local:Cube}" x:Key="CubeControlTemplate">
<Border>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border>
<Grid>
.......
</Grid>
</Border>
<Border Grid.Column="2">
<Grid>
.......
</Grid>
</Border>
<Grid>
</Border>
</ControlTemplate>
它的样子:
黄色标记显示它只能在内容后面点击,只有当你真正针对按钮被“隐藏”的点击时才会点击..
为什么会发生这种情况?
答案 0 :(得分:6)
如果没有Background
鼠标,则不会捕获事件。为您的外部Border
提供透明的Color
:
<ControlTemplate TargetType="{x:Type local:Cube}" x:Key="CubeControlTemplate">
<Border Background="Transparent">
.......
</Border>
</ControlTemplate>
答案 1 :(得分:0)
请检查您是否尝试单击具有Null背景的元素。命中测试需要设置Brush
。
如果您的Border
或Grid
背景为空,请尝试将其设置为透明。
如果您仍有问题,请尝试使用Snoop进行调试。