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.ToolTip
elemanı 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.Text
bağlayıcılığımdan çıkardı ve aynen böyle ... işe yaradı!