2009-07-01 57 views

答えて

30

あなたはMouseDownMouseUpに満足していない場合は、おそらくあなただけButtonRectangleを入れて、ButtonClickイベントを扱うことができますか?

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

これは実際に行っている動作によって異なります。必要があれば教えてください。

+0

これはおそらく私が望むものです。 –

18

四角形自体にクリック取り扱いを追加するには、あなたがInputBindingsプロパティを使用することができます。

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

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

+0

これは.NET 4ですか、それとも.NET 3.5でも動作しますか? –

+0

.NET 3.5で利用可能です:http://msdn.microsoft.com/en-us/library/system.windows.uielement.inputbindings(v=VS.90).aspx – Grokys

+1

この回答は.NET 3.5では機能しません.NET 4以降でのみ有効です。 .NET 3.5では、Commandプロパティは依存関係プロパティとして登録されていないため、バインディングに設定することはできません。私の質問はhttp://stackoverflow.com/questions/1427638/if-we-cant-bind-a-mousebindings-command-what-are-we-supposed-to-do –

4

関連するDoubleClickイベントを探していて、this suggestionを見つけて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> 
+0

これはチャンピオンのように働いた。シンプルでポイントまで。 +1 –

0

長方形にはイベントTappedがあり、正常に動作します。 Windows 8.1用のユニバーサルアプリケーションの設計には、新しいイベントがあります。タップ、ダブルタップ、右タップ、ホールディング

関連する問題