WPF:如何更改TransitioningContentControl的背景颜色?

4

我使用MahApps,使用这个ContentControl来显示从文件中读取的许可证文本。

    <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.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主题,富文本的背景和字体颜色都是黑色。这是什么问题?

是的,当然,请看上面我已经编辑了问题。 - ZedZip
你的字典是在 Window.xaml 还是 App.xaml 中? - jsanalytics
请检查您的“输出”窗口是否有任何警告或异常。 - jsanalytics
请发布您获得的“BaseLight”和“BaseDark”的打印屏幕。 - jsanalytics
此外,您的“BaseDark”已设置为“同意许可证”,而“BaseLight”没有...不确定这是否会对您产生影响。 - jsanalytics
显示剩余11条评论
1个回答

3

请确保License.rtf文件的foreground属性值设为Automaticbackground属性值设为No Color

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:

图片描述

BaseDark:

图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接