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

5

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

扁平按钮

我似乎找不到方法让它们看起来更像下面这样:

非扁平按钮

我的按钮的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中的按钮,还是我只能使用扁平按钮?


1
你的按钮是否在工具栏内,只是没有告诉我们? - Adam Sills
1
https://dev59.com/VXRB5IYBdhLWcg3wLUu3 - Adam Sills
3个回答

3

终于有时间去查看那些链接了。花了我一点时间才看完,但我找到了如何做我想要的事情。谢谢。 - PiousVenom

2

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

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

请注意,您需要将DLL本地复制(添加引用,右键单击“解决方案资源管理器”,属性,将CopyLocal设置为true),然后您就可以免费获得猫皮。此外,如果您希望在所有窗口中使用此功能,可以添加到ApplicationResources中。这是最省时、最有收益的答案。参考:https://dev59.com/25Dea4cB1Zd3GeqPc4cs - Steve Hibbert

0

默认情况下,按钮应该看起来像第二张图片。为了确保没有“BoringButton”样式使您的按钮看起来平淡(正如Tilak和Chris W建议的那样),请尝试明确清除您的按钮样式,如下所示:

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

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

在WinForms中,是的,它们看起来就像那样。但在WPF中不是这样。 - PiousVenom
@TyrionLannister - 在我制作的所有WPF(而非WinForms)项目中,默认情况下,按钮看起来与您的“连接”按钮类似。尝试在Visual Studio中创建一个新的“WPF应用程序”,并在MainWindow上放置一个按钮。它是否仍然看起来很平? - Sphinxxx
我已经做到了,是的,它是平的。我在VS2010和VS2012中都这样做过,使用的是.NET 4和4.5。 - PiousVenom
2
@TyrionLannister - 好的。在这种情况下,我不知道出了什么问题。在工作中,我使用过VS2010和VS2012(.Net 3.5和4.0),在家里我使用VS2010 Express(3.5和4.0),默认情况下所有按钮都是外观良好的。如果其他方法都失败了,创建自己的ControlTemplate(参见Cris W的链接)应该可以解决问题。 - Sphinxxx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接