1

ボタンから派生した「キューブ」(サイコロ)コントロールを取得しました

キューブ :

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>

それはどのようなものか :

ここに画像の説明を入力

黄色のマークは、ボタンが「非表示」の場所で実際にクリックをターゲットにした場合にのみ、 Content の背後でのみクリック可能であることを示しています..

なぜこれが起こるのですか?

4

2 に答える 2

6

Backgroundマウスイベントがないとキャッチされません。アウターBorderに透明感を与えるColor

<ControlTemplate TargetType="{x:Type local:Cube}" x:Key="CubeControlTemplate">
    <Border Background="Transparent">                
        .......
    </Border> 
</ControlTemplate>
于 2012-10-07T22:37:29.073 に答える
0

背景が Null の要素をクリックしようとしていないことを確認してください。ヒット テストでは、Brushを設定する必要があります。

あなたBorderまたはあなたGridの背景が Null の場合は、透明に設定してみてください。

問題が解決しない場合は、Snoop でデバッグしてみてください。

http://snoopwpf.codeplex.com/

于 2012-10-07T22:37:55.740 に答える