Bu sorunun her cevabını deneyen ve hala neden hiçbirinin sizin için çalışmadığına dair kafalarını kayanlar için, karşılaştığım sorunun bir formuyla karşılaşmış olabilirsiniz.
Benim TextBlock.Textözelliği içinde oldu ToolTipService.ToolTipelemanı ve veriler, bir SQL saklı yordam çekilerek bir nesnenin bir özelliği veri sınırlama edildi. Şimdi, saklı yordam içindeki bu özel özellikteki veriler bir SQL işlevinden alınmıştır.
Benim için hiçbir şey işe yaramadığından, aramamdan vazgeçtim ve aşağıdaki dönüştürücü sınıfını oluşturdum:
public class NewLineConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var s = string.Empty;
if (value.IsNotNull())
{
s = value.ToString();
if (s.Contains("\\r\\n"))
s = s.Replace("\\r\\n", Environment.NewLine);
if (s.Contains("\\n"))
s = s.Replace("\\n", Environment.NewLine);
if (s.Contains("

"))
s = s.Replace("

", Environment.NewLine);
if (s.Contains("
"))
s = s.Replace("
", Environment.NewLine);
if (s.Contains("
"))
s = s.Replace("
", Environment.NewLine);
if (s.Contains(" "))
s = s.Replace(" ", Environment.NewLine);
if (s.Contains(" "))
s = s.Replace(" ", Environment.NewLine);
if (s.Contains(" "))
s = s.Replace(" ", Environment.NewLine);
if (s.Contains("<br />"))
s = s.Replace("<br />", Environment.NewLine);
if (s.Contains("<LineBreak />"))
s = s.Replace("<LineBreak />", Environment.NewLine);
}
return s;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
@ Dparker'ın cevabındanEnivornment.NewLine yöntemi kullanmak zorunda kaldım . Dönüştürücüye bir satırsonunun olası herhangi bir metin temsilini aramasını ve yerine bunu vermesini söyledim .Environment.NewLine
Bu işe yaradı!
Ancak, diğer yöntemlerin hiçbirinin neden veri bağlı özelliklerle çalışmadığına dair hala şaşırdım.
@ BobKing'in kabul edilen cevabı hakkında bir yorum bıraktım :
@BobKing - Bir SQL sproc katıştırılmış satır beslemeleri olan bir alana bağlanırken ToolTipService.ToolTip içinde çalışmıyor gibi görünüyor.
Şöyle cevap verdi:
@CodeMaverick Yeni satırlar gömülü olarak metne bağlanıyorsanız, büyük olasılıkla XML sentinelleri değil gerçek karakter 10 (veya 13) olmalıdır. Bu yalnızca XAML dosyalarına gerçek yeni satırlar yazmak istiyorsanız.
Bir ampul söndü!
SQL fonksiyonuma girdim, yeni satırların metinsel gösterimlerimi ...
CHAR( 13 ) + CHAR( 10 )
... dönüştürücüyü TextBlock.Textbağlayıcılığımdan çıkardı ve aynen böyle ... işe yaradı!