【发布时间】:2016-04-06 09:54:58
【问题描述】:
我想为我的 WPF 应用程序更改 Min、Max 和 Close 按钮的样式。
我正在使用Mahapps.Metro,并且我已经成功地实现了我想要的结果,但仅在MetroWindow 类中使用过时的WindowMinButtonStyle、WindowMaxButtonStyle 和WindowCloseButtonStyle 属性。例如,WindowMinButtonStyle 属性上的过时消息如下:
此属性将在下一版本中删除。您应该在 WindowButtonCommands 中使用 LightMinButtonStyle 或 DarkMinButtonStyle 来覆盖样式。
问题是我不知道具体该怎么做。 MetroWindow 类有一个名为 WindowButtonCommands 的字段,但它是 internal,所以这似乎是错误的树。我对 WPF 还很陌生,他们网站上的指南中没有关于如何做到这一点的信息,所以我很迷茫。我希望有人可以为我提供一个简短的代码示例,为我指明正确的方向。
编辑 - 这是产生警告的 XAML:
<controls:MetroWindow x:Class="Project.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
WindowMinButtonStyle="{DynamicResource DarkWindowButtonStyle}"
WindowMaxButtonStyle="{DynamicResource DarkWindowButtonStyle}"
WindowCloseButtonStyle="{DynamicResource DarkWindowCloseButtonStyle}">
<Grid>
</Grid>
</controls:MetroWindow>
我还应该提到我正在使用 Mahapps.Metro 的新 v1.2.0,但我在以前的版本中遇到了同样的问题。
具有Obsolete 属性的 Mahapps.Metro 源代码:https://github.com/MahApps/MahApps.Metro/blob/develop/MahApps.Metro/Controls/MetroWindow.cs#L88-L93
【问题讨论】:
-
我更改了
WindowMinButtonStyle并没有收到任何警告。显示您的 XAML。 -
@jstreet 感谢您对此进行调查,我使用 XAML 和更多信息编辑了我的问题。
-
我使用的是 1.1.3.0 版本.....请同时显示您的
DarkWindowButtonStyle。 -
@jstreet 我看不出样式的相关性,完全空白的样式会产生相同的警告。问题是属性被标记为过时,显然应该有一种不同的方式来分配样式。
-
尝试使用
LightMinButtonStyle或DarkMinButtonStyle,具体取决于您使用的Accent。这些在 1.1.3.0 版本中不可用,但应该在某个时间点替换WindowMinButtonStyle,可能在 1.2.0 版本中
标签: c# wpf xaml titlebar mahapps.metro