gpt4 book ai didi

silverlight - Silverlight RichTextBox 中的 XAML 标记大小过大

转载 作者:行者123 更新时间:2023-12-04 20:17:29 24 4
gpt4 key购买 nike

我在 Silverlight 5 应用程序中有一个非常简单的 RichTextBox 控件。

<RichTextBox x:Name="rtbControl" 
Height="Auto"
ContentChanged="rtbControl_ContentChanged" />

随着数据的更改,我将其捕获在局部变量中,如下所示:
    private void rtbControl_ContentChanged(object sender, ContentChangedEventArgs e)
{
RichTextContent = rtbControl.Xaml;
}

所有作品。但是,如果我只输入几个字并检查 <Paragraph>标记,它是巨大的!下面是一个片段。有没有办法在标记中不包含所有的排版内容?为什么它在那里并且需要它?有没有办法去除它?
<Section xml:space="preserve" HasTrailingParagraphBreakOnPaste="False" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph FontSize="11" FontFamily="Segoe UI" Foreground="#FF000000" FontWeight="Normal" FontStyle="Normal" FontStretch="Normal"
CharacterSpacing="0" Typography.AnnotationAlternates="0" Typography.EastAsianExpertForms="False" Typography.EastAsianLanguage="Normal"
Typography.EastAsianWidths="Normal" Typography.StandardLigatures="True" Typography.ContextualLigatures="True"
Typography.DiscretionaryLigatures="False" Typography.HistoricalLigatures="False" Typography.StandardSwashes="0" Typography.ContextualSwashes="0"
Typography.ContextualAlternates="True" Typography.StylisticAlternates="0" Typography.StylisticSet1="False" Typography.StylisticSet2="False"
Typography.StylisticSet3="False" Typography.StylisticSet4="False" Typography.StylisticSet5="False" Typography.StylisticSet6="False" Typography.StylisticSet7="False"
Typography.StylisticSet8="False" Typography.StylisticSet9="False" Typography.StylisticSet10="False" Typography.StylisticSet11="False"
Typography.StylisticSet12="False" Typography.StylisticSet13="False" Typography.StylisticSet14="False" Typography.StylisticSet15="False"
Typography.StylisticSet16="False" Typography.StylisticSet17="False" Typography.StylisticSet18="False" Typography.StylisticSet19="False"
Typography.StylisticSet20="False" Typography.Capitals="Normal" Typography.CapitalSpacing="False" Typography.Kerning="True" Typography.CaseSensitiveForms="False"
Typography.HistoricalForms="False" Typography.Fraction="Normal" Typography.NumeralStyle="Normal" Typography.NumeralAlignment="Normal" Typography.SlashedZero="False"
Typography.MathematicalGreek="False" Typography.Variants="Normal" TextOptions.TextHintingMode="Fixed" TextOptions.TextFormattingMode="Ideal"
TextOptions.TextRenderingMode="Auto" TextAlignment="Left" LineHeight="0" LineStackingStrategy="MaxHeight"><Run>was it a </Run><Run TextDecorations="Underline">bad
</Run><Run>blah? or </Run></Paragraph></section>

最佳答案

我想我会分享我的解决方案来帮助其他人......它已经存在几个月了,我还没有看到任何不良副作用。

我创建了一些扩展方法来帮助删除 Typography 属性。

public static class RichTextBoxExtensions {
// <summary>
/// Removes any xml tag with the prefix given from a string
/// </summary>
/// <param name="XMLString"></param>
/// <param name="TagPrefix"></param>
/// <returns></returns>
public static string RemoveXMLAttributesFromNode(this string XMLString, string prefix)
{
//Match [Prefix][any number of Not =][=]["][any number of Not "]["][ ] <-must have space!!!
string replace = prefix + "[^\\=]*=\"[^\"]*\" ";
return Regex.Replace(XMLString, replace, string.Empty);
}
/// <summary>
/// Removes any xml tag with prefixed by an element in unWanted
/// </summary>
/// <param name="XMLString"></param>
/// <param name="TagPrefix"></param>
/// <returns></returns>
public static string RemoveXMLAttributesFromNode(this string XMLString, List<string> unWanted)
{

foreach (string prefix in unWanted)
{
//Match [Prefix][any number of Not =][=]["][any number of Not "]["][ ] <-must have space!!!
string replace = prefix + "[^\\=]*=\"[^\"]*\" ";
XMLString = Regex.Replace(XMLString, replace, string.Empty);
}
return XMLString;
}

接下来,就在我将字符串保存到数据库之前,我删除了错误的属性,如下所示:
        List<string> badAttributes = new List<string>();
badAttributes.Add("Typography");
var ffText = ffi.FreeFormText == null ? null : ffi.FreeFormText.RemoveXMLAttributesFromNode(badAttributes);

在删除这些属性后重新渲染 RTF 时,我没有看到任何问题。希望这个解决方案可以帮助某人!

关于silverlight - Silverlight RichTextBox 中的 XAML 标记大小过大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com