我正在尝试在窗口底部放置一个状态栏,该状态栏使用与标题栏相同的配色方案。我知道我缺少的部分是样式继承和/或模板设置,但我已经阅读了几个小时,但我无法弄清楚。
这是我的窗口当前的外观:
这是它在设计器中的外观:
我想要什么:
窗口底部的状态栏反射(reflect)了标题栏的样式。我认识到我当前的实现可能不太好,所以我也愿意改变我的状态栏定义,如下所示。我尝试使用实际的状态栏,但它不会像我想要的那样运行(文本框不会填充空白区域,因此命令行输入文本框很难点击 - 也许我只是做错了什么)。我假设我也可以像其他任何东西一样将样式应用于矩形,对吗?我缺少带有样式属性的关键组件,可能还缺少模板或静态资源的用户,但我完全迷失了。
这是我当前的解决方案(一个标签和两个用于状态更新和 cmdline 的文本框):
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0"/>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="0"/>
<TextBox Grid.Row="0" Grid.Column="1"/>
</Grid>
</Grid>
最佳答案
我通过在状态栏网格中使用 AccentColorBrush
资源解决了这个问题。<Grid Grid.Row="1" Background="{DynamicResource AccentColorBrush}">
我通过检查 GitHub 上 MahApps.Metro 中的许多 XAML 文件找到了它。这对某些人来说似乎很明显,但对于试图学习 XAML/WPF/MVVM 的人来说,这并不简单。我希望这对我已经挣扎了很长时间的人有所帮助。
关于c# - 将 MahApps.Metro 主题和重音应用到其他控件或矩形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25221055/