wpf文本框中的文本不对齐

时间:2014-08-20 03:11:54

标签: c# wpf

如何在文本框UI中解决不对齐的文本,但在复制到剪贴板功能到文本文件时很好。

由于

enter image description here

XAML:

     <Grid>
         <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <StackPanel Orientation="Vertical" HorizontalAlignment="Left" Grid.Column="1" >
            <TextBox Name="txtServiceParameter" Width="550" Height="460" IsReadOnly="True" Margin="10, 10, 0, 0" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" Text="{Binding DefaultText}" FontSize="12" FontFamily="Microsoft Sans Serif" HorizontalContentAlignment="Left"/>
            <Button Content="Copy to Clipboard" Width="150" Height="30" Margin="10, 10, 0, 0" Command="{Binding CopyToClipboardCommand}" />
        </StackPanel>
    </Grid>

C#:

        defaultText += "Hello World - Class 1 Day 1 " + DateTime.Now.ToString("dd/MM/yyyy H:mm:ss");
        defaultText += Environment.NewLine;
        defaultText += Environment.NewLine;
        defaultText += Environment.NewLine;
        defaultText += "************************************************************************";
        defaultText += Environment.NewLine;
        defaultText += "Mathemathic Class";
        defaultText += Environment.NewLine;
        defaultText += "************************************************************************";
        defaultText += Environment.NewLine;
        defaultText += Environment.NewLine;
        defaultText += string.Format("{0, -3}, {1,-34}, {2}", "01", "Hello", "EEE910");
        defaultText += Environment.NewLine;
        defaultText += string.Format("{0, -3}, {1,-34}, {2}", "02", "Belo haha", "");          

        private void ExecuteCopyToClipboardCommand()
        {
          Clipboard.SetText(defaultText);
        }

2 个答案:

答案 0 :(得分:1)

将TextBox上的字体系列更改为Monospaced。问题是您使用的字体。对于每个角色,它没有固定的。

答案 1 :(得分:0)

通常使用Spaces我主要使用白色空格字符的某种乘法。如果需要10个空格,我将1乘以2.&#39; s不是最佳答案,但它可以正常工作