使WPF按钮看起来不那么扁平

时间:2012-12-19 17:06:50

标签: c# wpf xaml button templating

我的表格上有两个按钮,它们看起来非常非常扁平。

Flat Buttons

我似乎无法找到让它们看起来更像的方法:

Not Flat Button

我的按钮的XAML是:

<Button x:Name="bttnDailyReport" HorizontalAlignment="Left" Margin="618,27,0,0" VerticalAlignment="Top" Width="121" Height="93" FontFamily="Microsoft Sans Serif" FontSize="20" FontWeight="Bold" Grid.Column="1" BorderBrush="Black">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"><Run Text="  Generate"/><LineBreak/><Run Text="Daily Report"/></TextBlock>
</Button>
<Button x:Name="bttnCancel" HorizontalAlignment="Left" Margin="618,126,0,0" VerticalAlignment="Top" Width="121" Height="93" FontFamily="Microsoft Sans Serif" FontSize="20" FontWeight="Bold" Click="BttnCancelClick">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"><Run Text="Exit"/></TextBlock>
</Button>

现在,我的问题是,是否可以使按钮看起来像WinForms中的按钮,或者我是否坚持使用平面按钮?

3 个答案:

答案 0 :(得分:3)

看起来,在资源的某个地方,平面按钮样式被用作按钮的默认样式。

检查Styling and Templating。您需要覆盖按钮中的样式,或者给出默认样式的键,并在需要的地方应用。

How to override a global style (that doesn't have an x:Key), or alternatively apply a named style to all type-targeted controls?

答案 1 :(得分:2)

只需在项目中引用PresentationFramework.Aero.dll并将此代码添加到窗口的XAML中:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/aero.normalcolor.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

答案 2 :(得分:1)

默认情况下,按钮应该看起来像第二个图像。为了确保周围没有“BoringButton”样式,让你的按钮看起来平坦(正如Tilak和Chris W建议的那样),试着明确地清除按钮的样式:

<Button x:Name="bttnDailyReport" Style="{x:Null}" >

此外,不要将按钮的背景设置为特定颜色(尽管在您发布的代码中已经看起来没问题。)