2014-02-05 7 views

Antwort

0

Sie können einen impliziten Stil verwenden. Ein impliziter Stil ist ein Stil, der nicht einen „Schlüssel“ hat, zum Beispiel, wenn Sie diesen Stil in Application.Resources fügen Sie alle Tasten in der Anwendung beeinflussen:

<Application.Resources> 
    <Style TargetType="Button"> 
    <Setter Property="Foreground" Value="Blue"/> 
    </Style> 
</Application.Resources> 

Sie können ihn in gesetzt, für Beispiel: Die Ressourcen eines Rasters wirken sich nur auf die Schaltflächen in diesem Raster aus.

+0

danke, aber das funktioniert auch nicht. Ich bearbeite die Frage nur zur Klarstellung, weil diese Buttons irgendwie "besonders" sind. – user3049133

+0

@ user3049133 Was ist der Typ dieser "Tasten"? – Rui

+0

Sind diese AppBarButton? Wenn so eingestellt, dass die Targettype = „AppBarButton“ und setzen Sie den Stil in Page.Resources – Rui

10

Nach einem tiefen Tauchgang in die MahApps codе ... Dies ist die Quelle, die für die Tasten verantwortlich: https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Themes/MetroWindow.xaml Wenn Sie genau hinsehen, werden Sie feststellen, dass jeder Stil Auslöser hat, die den Stil Vordergrund mit Hard- außer Kraft setzen codiert "White":

<Style.Triggers> 
     <DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}" 
        Value="True"> 
      <Setter Property="Foreground" 
        Value="White" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}" 
        Value="False"> 
      <Setter Property="Background" 
        Value="Transparent" /> 
     </DataTrigger> 
    </Style.Triggers> 

war meine Lösung alle notwendigen Stil außer Kraft zu setzen Trigger:

<Style TargetType="{x:Type MahControls:WindowButtonCommands}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MahControls:MetroWindow}}}" 
        Value="True"> 
      <Setter Property="Foreground" 
        Value="{StaticResource IdealForegroundColorBrush}" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

Hoffnung jemand dies in meinem Fall helfen. Besonderer Dank an @Rui und @Sankarann ​​für die Ideen und Hilfe. Wenn jemand eine bessere Lösung hat, bitte teilen Sie es.

0

Ja rechts die Farben in appbar_ Leinwand über

Fill="{DynamicResource BlackBrush}" 

So wie Ihr nicht die Kontrolle über BlackBrush angewendet werden Sie kann nicht wirklich eine SolidColorBrush, um es als eine andere Steuerung in der MahApps Bibliothek gelten Ihre Einstellung overwite .

Sie müssen NuGet auf freiem Fuß Ressourcen-Datei verweisen (so erhalten Sie eine Icons.xaml Datei mit lokal spielen)

Kopieren Sie die appbar Symbole, die Sie wollen, Farbe ändern (vielleicht ein Ressourcenverzeichnis erstellen MyIcons genannt. xAML und speichert sie dort in, das Hinzufügen MyIcons.xaml zu Ihrer App.xaml MergedDictionaries)

dann in MyIcons.xaml Ihr Symbol definieren (mit der neuen Farbe zu):

<SolidColorBrush x:Key="IconBrushOrange" Color="Orange" /> 

<Canvas x:Key="my_connecting" All other fields...> 
    <Path Stretch="Fill" Fill="{StaticResource IconBrushOrange}" All other fields.... /> 
</Canvas> 

dann in der Benutzeroberfläche:

<Rectangle Width="20" Height="20"> 
    <Rectangle.Fill> 
     <VisualBrush Stretch="Fill" Visual="{StaticResource my_connecting}" /> 
    </Rectangle.Fill> 
</Rectangle>