2011-08-09 7 views

答えて

121

あなたはInputBindingを使用することができます。

<TextBlock Text="Hello"> 
    <TextBlock.InputBindings> 
     <MouseBinding Command="" MouseAction="LeftClick" /> 
    </TextBlock.InputBindings> 
</TextBlock> 

編集:ハイパーリンクもおそらく言及する価値があります。

<TextBlock><Hyperlink Command="" TextDecorations="None" Foreground="Black">Hello</Hyperlink></TextBlock> 
+1

これは、マウスを押し下げても機能しない場合は非常に素晴らしいですが、簡単にするには+1してください... –

+2

ええ、MouseBindingは時には制限があります。私が追加したハイパーリンクメソッドは、MouseUpで実行されます – Kris

+3

うわー、あなたはかなり手抜きです。ハイパーリンクの代替はかなり完璧です... –

0

ボタンはクリックを消費し、クリックはあなたのTextBlockには向かないでしょう。あなたがそれを必要としないなら、それはそれを行う一つの方法でしょう。テキストブロックControlTemplateを変更し、ボタンを追加して、ボタンに透明なRectangleTを持つ新しいControlTemplateを与えることができます。より良い解決策は、EventBehaviorのようなイベントにコマンドを接続してOnMouseLeftButtonDownイベントに入れることです。

22

あなたはにそれをTextBlockのを入れ、その上に透明のボタンがありません。

<Button> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"> 
      <ContentPresenter /> 
     </ControlTemplate> 
    </Button.Template> 
    <TextBlock Text="Lorem Ipsum"/> 
</Button> 
+0

ボタンに「MinHeight = "0"」を追加することもできます。 –

関連する問題