我正在使用this代码项目项目中的WPF RichTextBoxToolBar
控件,并结合Exteneded WPF Toolkit
RichTextBox
控件。
当我第一次输入文字而没有格式化时,一切正常,背景为Transparent
。但是,当我使用工具栏将背景设置为Transparent
时,它实际上将其设置为White
。我注意到文本的RTF格式中有额外的\highlight1
参数来做这件事。
有没有人有这个工具栏的经验?有没有办法改变这种行为?我可以禁用背景颜色选择器命令吗?
以下是我为调查此问题而进行的一个小型测试项目的代码。该项目只需要从NuGet安装Extended WPF Toolkit
并从this zip引用dll。
XAML:
<Window x:Class="RtbTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:rtb="clr-namespace:RichTextBoxToolBar;assembly=RichTextBoxToolBar"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<rtb:RichTextBoxToolBar Margin="0,0,0,5" DockPanel.Dock="Top" Name="EditTextToolbar" />
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
<Button Content="Save RTF text" Click="ShowRtfText"/>
<Button Content="Reload RTF text" Click="ReloadRtfText"/>
</StackPanel>
<toolkit:RichTextBox Name="EditTextRtb">
<toolkit:RichTextBox.TextFormatter>
<toolkit:RtfFormatter />
</toolkit:RichTextBox.TextFormatter>
</toolkit:RichTextBox>
</DockPanel>
</Window>
代码隐藏:
namespace RtbTest
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ShowRtfText(object sender, RoutedEventArgs e)
{
MessageBox.Show(EditTextRtb.Text);
}
private void ReloadRtfText(object sender, RoutedEventArgs e)
{
string rtfText;
rtfText = EditTextRtb.Text;
EditTextRtb.Text = rtfText;
}
}
}