web-dev-qa-db-ja.com

WPFRectangleにはClickイベントがありません

WPF Rectangle シェイプにはClickイベントが定義されていないようです。代わりに何を使うべきですか?

MouseUpはありますが、まったく同じ動作ではありません。

22
M. Dudley

MouseDownMouseUpに満足できない場合は、RectangleButtonに入れて、Buttonを処理することができます。 Clickイベント?

<Button>
    <Button.Template>
        <ControlTemplate>
            <Rectangle .../>
        </ControlTemplate>
    </Button.Template>
</Button>

それは本当にあなたが求めている行動に依存します。必要に応じて詳しく説明してください。

33
Kent Boogaart

長方形自体にクリックハンドリングを追加するには、 InputBindings プロパティを使用できます。

<Rectangle Fill="Blue" Stroke="Black">
    <Rectangle.InputBindings>
        <MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
    </Rectangle.InputBindings>
</Rectangle>

これにより、長方形がクリックされたときにFooCommandが実行されます。 MVVMを使用している場合に便利です!

21
Grokys

関連するDoubleClickイベントを探していたところ、 この提案 目的のオブジェクトをContentControlに埋め込むだけでした。

これが彼らの例です(境界線があり、クリック/ダブルクリックもサポートしていません)。

<ContentControl MouseDoubleClick="OnDoubleClick">
    <Border Margin="10" BorderBrush="Black" BorderThickness="2">
        <Grid Margin="4">
            <Rectangle Fill="Red" />
            <TextBlock Text="Hello" FontSize="15" />
        </Grid>
    </Border>
</ContentControl>
4
mjhamre