2016-09-30 18 views
0

私はMahAppsMetroを使用しており、TabControlを持っています。実際には非アクティブなタブはグレーのフォアグラウンドを持ち、マウスオーバー時に黒になるはずです。私は自分のXAML-ファイル(オリジナルのものをコピーして、基本的な-色を変更)を使用しますが、残りは同じであるTabItems(MahAppsMetro)のデフォルトの色を変更する

<Controls:MetroWindow x:Name="MW_Window" x:Class="MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
Title="Example" Icon="/Example;component/pics/Example.ico" WindowStyle="ThreeDBorderWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="665.5" Width="759" ResizeMode="CanMinimize" NonActiveWindowTitleBrush="{DynamicResource AccentColorBrush}" NonActiveGlowBrush="{DynamicResource AccentColorBrush}" NonActiveBorderBrush="{DynamicResource AccentColorBrush}"> 
    <Grid> 
     <Controls:MetroAnimatedSingleRowTabControl Name="TabControl1" Margin="0,0,0,0"> 
      <TabItem Header="Dashboard" Name="Dashboard"> 
       <Grid Margin="0,0,0,0"> 
        <RadioButton HorizontalAlignment="Left" Margin="87,114,0,0" Name="RadioButton1" VerticalAlignment="Top" IsChecked="True" Width="64" Content="" VerticalContentAlignment="Center" /> 
        <RadioButton HorizontalAlignment="Left" Margin="87,138,0,0" Name="RadioButton2" VerticalAlignment="Top" Width="64" /> 
        <RadioButton HorizontalAlignment="Left" Margin="87,162,0,0" Name="RadioButton3" VerticalAlignment="Top" Width="64" /> 
        <RadioButton HorizontalAlignment="Left" Margin="86,185,0,0" Name="RadioButton4" VerticalAlignment="Top" Width="64" /> 
       </Grid> 
      </TabItem> 
      <TabItem Header="Options" Name="Options"> 
       <Grid Margin="0,0,0,0" > 

       </Grid> 
      </TabItem> 
      <TabItem Header="Info" Name="Info"> 
       <Grid Margin="0,0,0,0"> 

       </Grid> 
      </TabItem> 
      <TabItem Header="Admin" Name="Admin"> 
       <Grid Margin="0,0,0,0" > 

       </Grid> 
      </TabItem> 
      <TabItem Header="FM" Name="SuperAdmin"> 
       <Grid Margin="0,0,0,0" > 

       </Grid> 
      </TabItem> 
     </Controls:MetroAnimatedSingleRowTabControl> 
    </Grid> 
</Controls:MetroWindow> 

:どういうわけか、彼らは、これは私がのTabControlを使用する方法である ...ずっとブラックです。私は今、灰色に戻って自分の非選択tabitemsのデフォルトのフォアグラウンド・カラーを設定するにはどうすればよい

How it looks now

How it should be (Info is black because of MouseOver)

編集: が問題を見つけることができました:

私は、アプリケーションのMergedDictionariesからBaseLight.xamlを削除していない - それはもう働いていた - それは、再び働いていたそれを再度追加した後。後

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> 
      <!-- Accent and AppTheme setting --> 
      <ResourceDictionary Source="LiquidStyle_Classic.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

::前

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> 
      <!-- Accent and AppTheme setting --> 
      <ResourceDictionary Source="LiquidStyle_Classic.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 
+0

を私はGitのソースコードから全体のスタイルテンプレートをコピーして、私のアプリケーションでそのスタイルを使用して、変更を行うことになりました。しかし、良い方法かもしれない。 – Joe

答えて

0

は、カスタム・トリガーでTabItemのスタイルを定義してください。あなたのグリッドに次のマークアップを追加し :

<Grid.Resources> 
     <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}"> 
      <Style.Triggers> 
       <EventTrigger RoutedEvent="MouseEnter"> 
        <BeginStoryboard> 
         <Storyboard> 
          <ColorAnimation Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)" 
              From="Gray" To="Black" Duration="0:0:1"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
       <EventTrigger RoutedEvent="MouseLeave"> 
        <BeginStoryboard> 
         <Storyboard> 
          <ColorAnimation Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)" 
              From="Black" To="Gray" Duration="0:0:1"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Resources> 
+0

これはよく私が1つのTabItemでMouseOverを押すとすべてが黒くなります - 他のすべてのタブアイテム、さらにはタブアイテムのグリッドにあるラベル。 –

+0

私のためには動作します。私はすでにそれをテストしました。しかし、完全なマークアップを表示することができます、多分奇妙なことが起こっている。 – bakala12

+0

完全なマークアップが多すぎると思います。 DashboardタブアイテムのRadioButtonを追加しました。たとえば、それらのconentが変更されました。 –

関連する問題