2016-06-06 3 views
3

Я использую инструментарий Mahapps UI для своего приложения WPF, и мне нужна моя сетка, которая помещается внутри MetroWindow, чтобы изменить ее цвет, когда приложение неактивно, как это делает MetroWindow. Я пробовал несколько решений, но напрасно:Как создать сетку окон MahApps?

<Grid Background="{DynamicResource AccentColorBrush}" > 
       <TextBlock Text="Test" Foreground="#FFFFFF" VerticalAlignment="Center" Padding="10,0,0,0"/> 
</Grid> 

Это решение либо задает цвет сетки в AccentColorBrush

<Grid Background="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=controls:MetroWindow}, Path=WindowTitleBrush}" > 
       <TextBlock Text="Test" Foreground="#FFFFFF" VerticalAlignment="Center" Padding="10,0,0,0"/> 
</Grid> 

Я могу также установить цвет сетки в неактивном с NonActiveWindowTitleBrush собственности

<Grid Background="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=controls:MetroWindow}, Path=NonActiveWindowTitleBrush}" > 
        <TextBlock Text="Test" Foreground="#FFFFFF" VerticalAlignment="Center" Padding="10,0,0,0"/> 
</Grid> 

Буду благодарен за любую помощь.

С уважением, Дмитрий

ответ

1

Попробуйте это:

<Controls:MetroWindow x:Class="MahApps.Metro.Application12.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" 
        xmlns:Custom="http://metro.mahapps.com/winfx/xaml/shared" 
        Title="MainWindow" 
        Height="350" 
        Width="525"> 

<Controls:MetroWindow.Resources> 

    <Style x:Key="GridStyle1" TargetType="{x:Type Grid}"> 
     <Setter Property="Background" Value="{StaticResource AccentColorBrush}"/> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding IsActive, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}" Value="False"> 
       <Setter Property="Background" Value="{StaticResource GrayBrush3}"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

</Controls:MetroWindow.Resources> 

<Grid x:Name="grid1" Margin="50" HorizontalAlignment="Center" VerticalAlignment="Center" Height="232" Width="409" Style="{StaticResource GridStyle1}"> 

    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="32" Text="{Binding IsActive, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"/> 

</Grid> 

enter image description here

+0

Да, я уже сделал то же самое. Я думал, что есть динамическая кисть и ect. В любом случае, спасибо большое! –

+0

Возможно, есть один .... опубликуйте следующий вопрос, ссылаясь на это решение и объясните, что, хотя он работает, вы ищете альтернативное решение с помощью _dynamic brush_. Я не знаю об этом, кроме кого-то другого. – jsanalytics