并非所有内容都可以从按钮派生的自定义控件上单击

era*_*zap 1 wpf xaml controltemplate

我有一个"立方体"(Dice)控件,它来自Button

立方体:

public class Cube : Button
{        
    public Cube()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(Cube), new FrameworkPropertyMetadata(typeof(Cube)));                                
    }
    ...... // Stuff
}
Run Code Online (Sandbox Code Playgroud)

模板(一般):

<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>
Run Code Online (Sandbox Code Playgroud)

它看起来像什么:

在此输入图像描述

黄色标记显示它只能在内容后面点击,只有当你真正针对按钮被"隐藏"的点击时才会点击.

任何想法为什么会这样?

LPL*_*LPL 6

没有Background鼠标事件将不会被捕获.给你的外在Border透明Color:

<ControlTemplate TargetType="{x:Type local:Cube}" x:Key="CubeControlTemplate">
    <Border Background="Transparent">                
        .......
    </Border> 
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)