[英]WPF Smith HTML editor is changing all my HTML tags to upper case
我正在構建使用Smith HTML編輯器的WPF應用程序。 應用程序是MVVM,我將Smith控件綁定到包含HTML內容的字段。 一切正常,但是如果你點擊甚至鼠標懸停在HTML控件上,我正在處理的IsDirty實現會被觸發。 我仔細觀察了一下,發現只要控件失去焦點,它就會將我的所有標簽更改為大寫(因此應用程序會將字段視為已更改並將模型設置為臟。)
我很難掌握這個控件的任何文檔,但到目前為止我還沒有找到控制此行為的任何地方。
這是控件的XAML:
<smith:HtmlEditor Name="fldcomments" Height="320" BindingContent="{Binding Path=Student.Comments, Mode=TwoWay }"/>
我會感激任何提示。
所以這就像地獄一樣,但這是我想出的最好的。 我使用NUglify提取純文本,並將其作為我的字段設置函數的比較添加。 這是函數的代碼:
protected void SetField<T>(ref T field, T value, string propertyName)
{
if (!EqualityComparer<T>.Default.Equals(field, value))
{
IsDirty = true;
if ((propertyName == "Comments") && (value != null) && (field != null))
{
var ugField = Uglify.HtmlToText((value as string));
var ugValue = Uglify.HtmlToText(field as string);
string strField = Regex.Replace(ugField.Code, @"\s+", string.Empty);
string strValue = Regex.Replace(ugValue.Code, @"\s+", string.Empty);
if (strField == strValue)
{ IsDirty = false; }
}
field = value;
OnPropertyChanged(propertyName);
}
}
我不得不添加regex.replace來擺脫HTMLToText函數留在那里的一些額外的空格。
我並不自豪,但它有效。 對更好的解決方案仍然非常開放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.