繁体   English   中英

如何在保持水平对齐的同时在文本块上使用ScaleX和RenderTransform?

[英]How do I use ScaleX and RenderTransform on a text block whilst keeping horizontal alignment?

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

选项之一是将文本拉伸到通常宽度的两倍,因此我使用了textblock的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>

尝试使用TextAlignment =“ Center”而不是Horizo​​ntalAlignment

看起来RenderTransform会忽略包含它的元素的边界,而使用LayoutTransform会将转换后的文本保留在其父元素的边界之内。

<TextBlock.LayoutTransform>
   <ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="1" CenterX=".5"/>
</TextBlock.LayoutTransform>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM