MahApps.Metro+.net 5(一)

运行环境 VS2019 + .net 5 ,新建一个基于.net 5的WPF项目

1、也可以打开官网按步骤添加

https://mahapps.com/docs/guides/quick-start

2、打开VS中的NuGet 搜索 MahApps,安装MahApps.Metro,MahApps.Metro.IconPacks安装成功如下图所示

安装成功如下图所示 

3、按官网提示,添加引用

<Application.Resources>

<ResourceDictionary>

<ResourceDictionary.MergedDictionaries>

<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />

<!-- Theme setting -->

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Blue.xaml" />

</ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

</Application.Resources>

4、打开MainForm.xaml,添加以下引用

xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" 以下图标使用的

xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"

<Window x:Class="CS.MainWindow">修改成<mah:MetroWindow x:Class="CS.MainWindow"

5、添加引用“using MahApps.Metro.Controls;”,删除MainForm.xaml.cs文件中的对windows窗体的基类引用“Window”。

.net5项目不要继承MetroWindow,否则会出现如下错误。

         

6、按以上步骤修改完成后,运行程序如下,表示成功 引用Metro。如运行失败,最检查下图中红框部分是否修改正确。

 

7、在窗体的标题栏添加按钮,菜单等功能。使用LeftWindowCommandsRightWindowCommands向标题栏添加控件。

 

代码如下:

<mah:MetroWindow x:Class="CS.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"

xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:local="clr-namespace:CS"

mc:Ignorable="d"

GlowBrush="{DynamicResource MahApps.Brushes.Accent}"

ResizeMode="CanResizeWithGrip"

WindowStartupLocation="CenterScreen"

Title="MainWindow" Height="450" Width="800">

<mah:MetroWindow.LeftWindowCommands>

<mah:WindowCommands>

<Button Click="btnICON" ToolTip="悬浮提示">

<iconPacks:PackIconModern Width="22" Height="22" Kind="SocialGithubOctocat" />

</Button>

<Button Click="btnICON" ToolTip="悬浮提示1">

<iconPacks:PackIconModern Width="22" Height="22" Kind="App" />

</Button>

</mah:WindowCommands>

</mah:MetroWindow.LeftWindowCommands>

<mah:MetroWindow.RightWindowCommands>

<mah:WindowCommands>

<Button Click="btnTool" Content="自定义按钮">

<Button.ContentTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<iconPacks:PackIconModern Width="22" Height="22" VerticalAlignment="Center" Kind="Delete" />

<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="{Binding}" />

</StackPanel>

</DataTemplate>

</Button.ContentTemplate>

</Button>

<Button Click="btnTool">

<Button.ContentTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<iconPacks:PackIconModern Width="22" Height="22" VerticalAlignment="Center" Kind="Add" />

<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="{Binding}" />

</StackPanel>

</DataTemplate>

</Button.ContentTemplate>

</Button>

<Menu IsMainMenu="True" x:Name="mnuMainMenu" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="12" Background="Transparent" Width="Auto" >

<MenuItem Header="_File" x:Name="mnuFile" Visibility="Visible" Background="Transparent">

<MenuItem Header="_Open" x:Name="mnuOpen" Background="Transparent" Command="{Binding MenuOpenCommand}" />

<MenuItem Header="_Exit" x:Name="mnuExit" Click="" Background="Transparent"/>

</MenuItem>

<MenuItem Header="_Tools" Background="Transparent" >

<MenuItem Header="_Repeat" x:Name="mnuRepete" Background="Transparent" >

<MenuItem Header="Repeat None" Command="{Binding RepeatNoneCommand}" IsCheckable="True"/>

<MenuItem Header="Repeat One" Command="{Binding RepeatOneCommand}" IsCheckable="True"/>

<MenuItem Header="Repeat All" Command="{Binding RepeatAllCommand}" IsCheckable="True"/>

</MenuItem>

</MenuItem>

<MenuItem Header="_Store" x:Name="smOnlineMode" Background="Transparent" Click="" IsCheckable="True" />

<MenuItem Header="_Play Mode" x:Name="smPlayMode" Background="Transparent" Click="" IsCheckable="True" IsChecked="True"/>

<MenuItem Header="_Play" Background="Transparent" >

<MenuItem Header="_Play" x:Name="mnuPlay" Background="Transparent" Command="{Binding PlayCommand}"/>

<MenuItem Header="P_ause" x:Name="mnuPause" Background="Transparent" Command="{Binding PauseCommand}"/>

<MenuItem Header="_Stop" x:Name="mnuStop" Background="Transparent" Command="{Binding StopCommand}"/>

<Separator/>

<MenuItem Header="_Next" x:Name="mnuNext" Background="Transparent" Command="{Binding NextTrackCommand}"/>

<MenuItem Header="P_revious" x:Name="mnuPrevious" Background="Transparent" Command="{Binding PreviousTrackCommand}" />

<MenuItem Header="_Mute/UnMute" x:Name="smnuMute" Background="Transparent" Command="{Binding MuteSoundCommand}" />

<!--Command="{Binding MuteSoundCommand}"-->

</MenuItem>

<MenuItem Header="_Help" Background="Transparent" >

<MenuItem Header="_Help" x:Name="smnuOnlineHelp" Background="Transparent" Click="" />

<Separator />

<MenuItem Header="_Register Player" x:Name="smnuRegister" Background="Transparent" Click="" />

<MenuItem Header="_About Codero Music Player" x:Name="smnuAbout" Background="Transparent" Click="" />

</MenuItem>

</Menu>

</mah:WindowCommands>

</mah:MetroWindow.RightWindowCommands>

<Grid/>

</mah:MetroWindow>

8、修改窗体主题颜色

可修改主题如下:

"Red", "Green", "Blue", "Purple", "Orange", "Lime", "Emerald", "Teal", "Cyan", "Cobalt", "Indigo", "Violet", "Pink", "Magenta", "Crimson", "Amber", "Yellow", "Brown", "Olive", "Steel", "Mauve", "Taupe", "Sienna", "Light.Blue", "Dark.Blue"

对应中文:

“红色”、“绿色”、“蓝色”、“紫色”、“橙色”、“石灰”、“祖母绿”、“青色”、“青色”、“钴色”、“靛蓝”、“紫罗兰色”、“粉红色” ”、“洋红色”、“深红色”、“琥珀色”、“黄色”、“棕色”、“橄榄色”、“钢色”、“紫红色”、“灰褐色”、“赭色”,“浅蓝” 、“深蓝”

只需要修改App.xaml文件中的主题就可以了

 

 

源代码下载地址:

https://download.csdn.net/download/zhouhui1982/20234249?spm=1001.2014.3001.5501

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周不易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值