2016-09-30 182 views
0

我正在使用MahAppsMetro并有一个TabControl - 实际上,非活动选项卡应该具有灰色前景,并在MouseOver上变为黑色。不知怎的,他们是黑的整个时间.. 这是我使用的TabControl:更改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> 

我用我自己的XAML的文件(复制原来的一个,改变了基本-颜色),但其余的是相同的。

How it looks now

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

我现在如何才能设置默认的前景颜色为我未选中的TabItems回灰色的?

编辑: 能够找到问题:

我从应用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

好吧,这导致当我在一个TabItem上MouseOver一切变黑 - 所有其他tabitems,甚至我在标签项目的网格中有标签.. –

+0

对我来说,它的工作原理。我已经测试过了。然而,你可以显示你的完整标记,也许有些奇怪的事情发生。 – bakala12

+0

我认为完整的标记会太多。 我为仪表板tabitem添加了RadioButtons - 例如它们的内容发生了变化。 –