Я хочу использовать кнопки в WPF , стилизованные под ссылки. Microsoft делает это (казалось бы, непоследовательно) в своих диалоговых окнах Windows.
Они выглядят как синий текст. И измените цвет и подчеркните, когда курсор мыши находится над.
Пример:
Я получил это работает. (спасибо Кристиану , Андерсону Имесу и MichaC ) Но мне пришлось вставить TextBlock
в мою кнопку.
Как я могу улучшить свой стиль & mdash; чтобы он работал без использования текстового блока внутри кнопки?
Использование XAML
<Button Style="{StaticResource HyperlinkLikeButton}">
<TextBlock>Edit</TextBlock>
</Button>
Стиль XAML
<Style x:Key="HyperlinkLikeButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HotTrackBrushKey}}" />
<Setter Property="Cursor" Value="Hand" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ControlTemplate.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextDecorations" Value="Underline" />
</Style>
</ControlTemplate.Resources>
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>