如何在WPF中更改按钮的可视行为?

时间:2016-07-21 03:11:17

标签: c# wpf themes windows-10

我注意到在Windows 10上,操作系统显示的控件外观看起来比Winforms / WPF上的默认值更具吸引力。例如,所选的OS按钮具有较厚的蓝色边框,并且具有更加交互的“感觉”,而默认的WPF按钮显示为简单的灰色框:

OS: enter image description here

WPF: enter image description here

有没有办法以某种方式更改WPF中按钮的“主题”,使其行为与大多数操作系统显示的按钮类似,而不必手动实现此行为?

3 个答案:

答案 0 :(得分:1)

您可以使用Windows UWP获得类似的按钮样式。

在WPF中,您可以查看MSDN网站中的Modern UI(MUI)

它可以产生类似的结果。我和mui一起工作了几个月,这真的帮助我满足了想要拥有Windows 10喜欢UI体验的客户。我不得不像开始菜单一样创建瓷砖。 MUI为我做了很棒的工作。

从Github获取MUI。 Modern UI for WPF

此外,我还尝试了devexpresstelerik控件。也看看他们。

答案 1 :(得分:1)

您可以使用DevExpress获取表单的themes。或者您可以通过在每个按钮周围添加边框并在MouseDown和MouseUp事件处理程序上更改其颜色/可见性来实现自己的

答案 2 :(得分:1)

使用TargetType =“ Button”在Window.Resources中定义样式,以使其影响该窗口中的所有按钮。例如,尽管默认的WPF按钮具有鼠标悬停颜色更改和焦点矩形,但它不会在MouseDown上“向内”移动,因此此示例显示了如何执行此操作:

<Window.Resources>              
    <!--A Style that affects all Buttons-->         
    <Style TargetType="Button">
        <Style.Triggers>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property= "RenderTransform">
                    <Setter.Value>
                        <TransformGroup>
                            <ScaleTransform ScaleX="0.99" ScaleY="0.99"/>
                            <TranslateTransform  X="2" Y="2"/>
                        </TransformGroup>
                    </Setter.Value>
                </Setter>
                <Setter Property="BorderThickness">
                    <Setter.Value>
                        <Thickness Left="2" Right="2" Top="2" Bottom="2"/>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

在“窗口”属性之后,在“网格”或其他容器标签之前插入此代码。