【问题标题】:WPF line alignmentWPF 行对齐
【发布时间】:2016-03-15 17:50:22
【问题描述】:

如何在WPF 中创建TextBox/RichTextBox(或者自定义UserControl),每行之间的对齐方式不同?

正如您在 Facebook 的收件箱中看到的那样,您的文本在右侧对齐,而您朋友的文本在左侧对齐

【问题讨论】:

    标签: c# wpf textbox alignment richtextbox


    【解决方案1】:
    1. WPF 原生支持将不同样式应用于替代项。

    2. ItemsControl.AlternationIndex 使您能够做到这一点。

    3. 应用 AlternationCount <ListBox AlternationCount="2">

    4. 这样定义样式:

      <Style  TargetType="{x:Type ListBoxItem}">
         <Style.Triggers>
          <Trigger Property="ItemsControl.AlternationIndex"
                   Value="0">
              <Setter Property="HorizontalAlignment"
                      Value="Right"></Setter>
          </Trigger>
          <Trigger Property="ItemsControl.AlternationIndex"
                   Value="1">
              <Setter Property="HorizontalAlignment"
                      Value="Left"></Setter>
          </Trigger>
         </Style.Triggers>
      </Style>
      

    用上述概念进行实验。

    【讨论】:

    • 您能否说得更具体一些。不知道怎么用
    • @Fish 先学习 WPF。
    【解决方案2】:

    FlowDocument 怎么样?

    <FlowDocument>
        <Paragraph  TextAlignment="Right">
            Rigth
        </Paragraph>
        <Paragraph  TextAlignment="Left">
            Left
        </Paragraph>
    </FlowDocument>
    

    【讨论】:

    • 您的答案创建了两个不同的段落。我怎样才能让线路相互交错
    • 交错是什么意思?
    • 我认为你的答案很容易使用。
    • 如果你创建2个段落,第1段的所有行都将在第2段的所有行之上。但我真正想要的是不同align的行可以相互堆叠(希望你能理解它)
    • 我觉得我的图片已经够清晰了,我还说我希望它看起来像 Facebook 的收件箱
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2012-11-07
    • 2010-12-22
    • 2023-03-03
    • 2011-05-06
    • 1970-01-01
    • 2010-10-30
    • 2020-01-08
    相关资源
    最近更新 更多