0

我正在尝试创建一个弹出窗口,该弹出窗口基于用户输入的某些数据将生成将打印出来的某些内容的预览。

其中一个选项是将文本拉伸到其通常宽度的两倍,因此我使用了文本块的 ScaleTransform 选项。这行得通,但是我在对齐方面遇到了一些问题,当我将水平对齐设置为左时,拉伸的文本会显示一半的文本被截断。居中对齐基本没问题,但文本不是完全居中。

有什么方法可以让这个文本在保持对齐的同时拉伸?

<ListBox.ItemTemplate>
  <DataTemplate>
      <TextBlock Text="{Binding CouponLine}" 
                 FontWeight="{Binding FontWeight}"
                 HorizontalAlignment="{Binding Alignment}"
                 FontSize="{Binding FontSize}"
                 RenderTransformOrigin="0.5,0.5">
             <TextBlock.RenderTransform>
                     <ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="1" CenterX=".5"/>
              </TextBlock.RenderTransform>
       </TextBlock>
   </DataTemplate>
</ListBox.ItemTemplate>
4

2 回答 2

0

尝试 TextAlignment="Center" 而不是 Horizo​​ntalAlignment

于 2013-03-15T10:58:59.377 回答
0

RenderTransform 似乎忽略了包含它的元素的边界,而使用 LayoutTransform 会将转换后的文本保持在其父元素的边界内。

<TextBlock.LayoutTransform>
   <ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="1" CenterX=".5"/>
</TextBlock.LayoutTransform>
于 2013-03-15T11:57:40.623 回答