2011-08-09 48 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」'添加到按鈕。 –