如何更改Fluent功能区

时间:2017-02-10 09:37:11

标签: c# wpf statusbar fluent-ribbon

我在我的WPF应用程序中使用Fluent功能区,而且我一直坚持使用简单的东西。我无法更改StatusBar的颜色(来自FluentRibbon或默认值)。 我的StatusBar仍然是蓝色的。我该怎么改变它?背景属性对我不起作用。

我的XAML文件看起来像这样(我删除了所有不需要的代码)

<Fluent:RibbonWindow
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Fluent="clr-namespace:Fluent;assembly=Fluent" x:Class="MainWindow"
    Title="App" Height="600" Width="960" Closing="Window_Closing" WindowStartupLocation="CenterScreen" WindowState="Maximized" WindowStyle="SingleBorderWindow" BorderBrush="WhiteSmoke">
<Grid Name="grid" Focusable="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="50*"/>
        <ColumnDefinition Width="61*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="250*" />
        <RowDefinition Height="22"/>
    </Grid.RowDefinitions>
    <Grid.Resources>
        <Style TargetType="{x:Type Fluent:Ribbon}">
            <Setter Property="Margin" Value="0,0,0,0" />
        </Style>
    </Grid.Resources>
    <Fluent:StatusBar Foreground="White" Background="Red">


    </Fluent:StatusBar>
</Grid>

1 个答案:

答案 0 :(得分:0)

StatusBar中的FluentRibbon会忽略Background属性,因为id定义了自己的模板,该模板不会继承此值但会使用主题颜色。

如果要更改状态栏的背景颜色,则必须覆盖用作背景画笔的画笔的DynamicResource

以下是一个例子:

<Fluent:StatusBar>
    <Fluent:StatusBar.Resources>
        <LinearGradientBrush x:Key="StatusBarInnerBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Red" Offset="0" />
            <GradientStop Color="#FFB5C5D9" Offset="1" />
        </LinearGradientBrush>
    </Fluent:StatusBar.Resources>
</Fluent:StatusBar>