2016-06-06 11 views
3

Ich verwende Mahapps UI-Toolkit für meine WPF-Anwendung, und ich brauche mein Raster, das in MetroWindow platziert wird, um seine Farbe zu ändern, wenn die Anwendung nicht aktiv ist, wie MetroWindow tut. Ich habe mehrere Lösungen ausprobiert, aber vergeblich:Wie man MahApps Fenstergitter style?

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

Diese Lösung setzt entweder Rasterfarbe als 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> 

Ich kann auch als inaktiv mit NonActiveWindowTitleBrush Eigenschaft

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

Ich werde für jede Hilfe dankbar sein. diese

Grüße, Dmitry

Antwort

1

Versuchen:

<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

Ja, ich habe bereits das gleiche. Ich dachte, ein dynamischer Pinsel ist verfügbar und ect. Jedenfalls vielen Dank! –

+0

Vielleicht gibt es eine .... posten Sie eine Follow-up-Frage zurück zu dieser Lösung und erklären, dass, obwohl dies funktioniert, Sie eine alternative Lösung suchen mit einem _dynamic Pinsel_. Ich weiß es nicht, aber jemand anders könnte es. – jsanalytics