2016-01-07 198 views
4

我使用MahApps,使用此内容控件显示从文件读取的许可证文本。WPF:如何更改TransitioningContentControl背景颜色?

<controls:TransitioningContentControl Transition="Down" Content="{Binding LicenseDocument}" FontFamily="{DynamicResource ContentFontFamily}" FontSize="{DynamicResource NormalFontSize}" Visibility="{Binding LicenseInfoVisibility}" TabIndex="0" Margin="0,-5,0,10"/> 

public FrameworkElement LicenseDocument 
{ 
    get; 
    set; 
} 
public void InitDoc() 
{ 
    try 
    { 
     const string licenseFullFile = @"License.rtf"; 
     using (
      MemoryStream stream = new MemoryStream(Encoding.Default.GetBytes(File.ReadAllText(licenseFullFile))) 
      ) 
     { 
      FlowDocument document = new FlowDocument(); 
      new TextRange(document.ContentStart, document.ContentEnd).Load(stream, DataFormats.Rtf); 
      RichTextBox box = new RichTextBox(document) 
      { 
       VerticalScrollBarVisibility = ScrollBarVisibility.Auto, 
       IsReadOnly = true 
      }; 
      LicenseInfoVisibility = Visibility.Visible; 
      this.LicenseDocument = box; 
     } 
    } 
    catch (Exception xException) 
    { 
     Debug.WriteLine(xException); 
    } 
} 

它工作正常,当我使用

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 

还有就是我的ResourceDictionary

<ResourceDictionary.MergedDictionaries> 
     <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" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> 
     <!--<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Cobalt.xaml" />--> 
     <!--<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />--> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 

但是,如果使用BaseDark那么丰富文本的背景和字体颜色是黑色。

有什么不对?

+0

它适用于我...你是否包含所有其他标准包,如'Fonts.xaml','Color.xaml'等? – jsanalytics

+0

是的,当然,见上面我编辑了这个问题。 – Oleg

+0

是你的'Window.xaml'还是'App.xaml'中的字典? – jsanalytics

回答

2

确保License.rtf有​​设置为自动background设置为无颜色

XAML:

<Controls:MetroWindow 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:local="clr-namespace:MahApps.Metro.Application3" 
        x:Class="MahApps.Metro.Application3.MainWindow" 
        Title="MainWindow" 
        Height="350" 
        Width="525"> 
<Controls:MetroWindow.DataContext> 
    <local:MyViewModel/> 
</Controls:MetroWindow.DataContext> 

<Grid> 
    <Controls:TransitioningContentControl Transition="Down" 
              Content="{Binding LicenseDocument}" 
              FontFamily="{DynamicResource ContentFontFamily}" 
              FontSize="{DynamicResource NormalFontSize}" 
              Visibility="{Binding LicenseInfoVisibility}" 
              TabIndex="0" Margin="0,-5,0,10"/> 
</Grid> 

Baselight来:

enter image description here

BaseDark:

enter image description here