Reputation: 331
First of all I'm new to WPF. I have some string value that already contains formatted text, for example:
Person Name = Jack Age = 40 #male
Person Name = Bill Age = 18 #male
Person Name = Liza Age = 19 #female
Person Name = Kate Age = 38 #female
When I write it to file everything is fine. But when I try to pass this string to textBox I see something like this:
Person Name = Jack Age = 40 #male
Person Name = Bill Age = 18 #male
Person Name = Liza Age = 19 #female
Person Name = Kate Age = 38 #female
It doesn't make sense for me, why I've lost my spaces. Should I use RichTextBox? I've tried but actually text displayed in the same way
Here is my code. I'm sorry for my low skill coding level
public override string TransformCollectionToSourceType(IList<ElementPin> elementPins)
{
var stringBuilder = new StringBuilder();
var maxSignalNameLength = elementPins.MaxStringLength(pin => pin.SignalName.Length);
var maxPinNameLength = elementPins.HasEmptyValue(pin => pin.PinName)
? EmpyPinName.Length
: elementPins.MaxStringLength(pin => pin.PinName.Length);
var maxIoStandartLength = elementPins.MaxStringLength(pin => pin.IoStandardValue.Length)
> EmptyIoStandard.Length
? elementPins.MaxStringLength(pin => pin.IoStandardValue.Length) + 1
: EmptyIoStandard.Length + 1;
foreach (var elemPin in elementPins)
{
var signalName = elemPin.ElementCommented
? string.IsNullOrWhiteSpace(elemPin.SignalName)
? EmptySignalName.PadRight(maxSignalNameLength)
: elemPin.SignalName.PadRight(maxSignalNameLength)
: string.IsNullOrWhiteSpace(elemPin.SignalName)
? WhiteSpace + EmptySignalName.PadRight(maxSignalNameLength)
: WhiteSpace + elemPin.SignalName.PadRight(maxSignalNameLength);
var pinName = string.IsNullOrWhiteSpace(elemPin.PinName)
? EmpyPinName.PadRight(maxPinNameLength)
: elemPin.PinName.PadRight(maxPinNameLength);
var ioStandardValue = string.IsNullOrWhiteSpace(elemPin.IoStandardValue)
? (EmptyIoStandard + ";").PadRight(maxIoStandartLength)
: (elemPin.IoStandardValue + ";").PadRight(maxIoStandartLength);
stringBuilder.AppendFormat(
"{0}NET {1} LOC = {2} | IOSTANDARD = {3} # {4}",
elemPin.ElementCommented ? "#" : string.Empty,
signalName,
pinName,
ioStandardValue,
string.IsNullOrWhiteSpace(elemPin.Comment) ? EmptyComment : elemPin.Comment);
stringBuilder.AppendLine();
}
return stringBuilder.ToString().RemoveLastNewlineSymbol();
}
Upvotes: 0
Views: 762
Reputation: 480
Had exactly the same problem. Used String.Format for padding.
See: https://msdn.microsoft.com/en-us/library/aa331875(v=vs.71).aspx
var string1 = "Some left-aligned string with maxWith = 60";
var string2 = "Some right-aligned string";
var output = $"{string1, -60}{string2, 30}"
This did not get displayed correctly.
I could fix the issue by choosing a monospaced font
Upvotes: 0