回答
如果你不希望任何普通按鈕樣式,只是想要的東西,看起來像你可以用這個
<Button Margin="5" Content="Test" Cursor="Hand">
<Button.Template>
<ControlTemplate TargetType="Button">
<TextBlock TextDecorations="Underline">
<ContentPresenter />
</TextBlock>
</ControlTemplate>
</Button.Template>
<Button.Style>
<Style TargetType="Button">
<Setter Property="Foreground" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
這裏開始的超鏈接是相同的風格:
<Style
x:Key="LinkButton"
TargetType="Button">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="Button">
<TextBlock
TextDecorations="Underline">
<ContentPresenter /></TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter
Property="Foreground"
Value="Blue" />
<Style.Triggers>
<Trigger
Property="IsMouseOver"
Value="true">
<Setter
Property="Foreground"
Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
,你可以使用它像這樣:
<Button Style="{StaticResource LinkButton}" Content="Clicky" />
請注意,這裏有一個錯字 - LinkButon – GarethD 2012-02-03 12:17:51
這個答案產生一個按鈕,在下劃線和文本之間有一個空格。 @Christians答案可以解決這個問題。 – 2012-02-22 04:52:57
爲什麼你不想使用超鏈接?
<Button>
<Hyperlink>
</Button>
因爲,每當我嘗試在Visual樹中獲得父項,它會拋出一個異常,說超鏈接不是可視化的或Visual3d – 2009-04-23 05:55:48
我想要使用它。我得到它的工作,但我似乎無法擺脫按鈕邊緣的陰影。你是怎樣做的? – 2010-01-18 22:01:07
這裏的MichaC的建議作爲Style
實現的,你可以在任何按鈕重用:
<Style x:Key="LinkButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<TextBlock TextDecorations="Underline">
<ContentPresenter />
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Blue" />
<Setter Property="Cursor" Value="Hand" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="LinkButton"
TargetType="Button"
BasedOn="{StaticResource ResourceKey={x:Type Button}}"
>
<Setter Property="Width" Value="Auto"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ContentPresenter Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
VerticalAlignment="Center"
>
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextDecorations" Value="Underline" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Blue" />
<Setter Property="Cursor" Value="Hand" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
MichaC的和安德森的版本放在下劃線稍有不當,這裏是一個更新版本,將只需要加一個下劃線任何TextBlock
在ContentPresenter
之內。
最簡單的方法(我這樣做是在我的應用程序):
<TextBlock Name="..."
Text="..."
Cursor="Hand"
Foreground="Blue"
TextDecorations="Underline"
MouseLeftButtonUp=..."
/>
你有TextDecoration,例如完全控制更改筆樣式或偏移量。 請查看此鏈接瞭解更多信息:http://msdn.microsoft.com/en-us/library/system.windows.textdecorations.underline.aspx
使用Hyperlink
的另一個解決方案是放入TextBlock
的內部。
<TextBlock>
<Hyperlink Click="...">
<TextBlock Text="Link text" />
</Hyperlink>
</TextBlock>
- 1. WPF鏈接按鈕
- 2. WPF System.Windows.Controls.WebBrowser不呈現鏈接按鈕
- 3. asp.net中的鏈接按鈕?
- 4. 鏈接按鈕鏈接
- 5. 的鏈接按鈕
- 6. 居中html按鈕鏈接
- 7. Django:按鈕鏈接
- 8. GWT鏈接按鈕
- 9. 與鏈接按鈕
- 10. 鏈接/按鈕3.2.4+
- 11. 重新啓用按鈕,鏈接按鈕,鏈接
- 12. 帶鏈接的CSS按鈕
- 13. 鏈接按鈕的GridView
- 14. Zend的鏈接按鈕
- 15. 鏈接外面的按鈕
- 16. 鏈接按鈕的實現
- 17. 鏈接按鈕中的文本中心?
- 18. 禁用jquery中的鏈接按鈕
- 19. 刪除django中的按鈕/鏈接admin
- 20. ie9中的按鈕和鏈接
- 21. 刪除表格中的按鈕/鏈接
- 22. SilverLight Datagrid中的超鏈接按鈕
- 23. 禁用菜單中的鏈接按鈕
- 24. 使用HREF只在按鈕中對齊鏈接的按鈕
- 25. 如何將鏈接置於按鈕/鏈接的中間位置?
- 26. 如何在鏈接中有一個不是鏈接的按鈕
- 27. jQuery鏈接按鈕錯誤
- 28. Dreamweaver鏈接到按鈕CS6
- 29. 首頁鏈接或按鈕
- 30. 錨鏈接或按鈕
如果有人關心,這裏所有答案的問題是答案中的鏈接實際上並不像鏈接那樣。他們不知道訪問過的URL歷史記錄,並且顏色不是系統URL的顏色。但是,如果你沒有這些要求,他們沒關係。 – Will 2010-10-20 18:31:03
我想弄清楚如何使用正確的Windows顏色。 http://stackoverflow.com/questions/5094447 – 2011-02-23 22:42:39