【问题标题】:WPF trouble with maximizing text最大化文本的 WPF 问题
【发布时间】:2012-11-21 06:12:22
【问题描述】:

我遇到了一些麻烦。我希望我的页面通过文本框内的文本最大化,但只能通过文本框的边框使其最大化。谁能帮帮我?

做到这一点非常重要。我必须让最左边的像素与旋转文本中最右边的像素一样远离边框。

我在底部贴了“第一行”的 XAML 代码,“另一行”的代码只是固定大小和位置,所以我把那部分删掉了。

<Viewbox Height="3000" HorizontalAlignment="Stretch"  VerticalAlignment="Bottom"  Width="Auto">
    <TextBox Text="First line" BorderThickness="0" VerticalContentAlignment="Bottom"  >
        <TextBox.LayoutTransform>
            <RotateTransform Angle="-35"/>
        </TextBox.LayoutTransform>
    </TextBox>
</Viewbox>

【问题讨论】:

  • Set Height="NaN",是你想要的吗?
  • Setting Height="NaN" 仍然最大化文本框边框以适应视图框,但我想要一种最大化的方法,使其文本本身在边框或视图框内最大化。如果它更容易,我可以使用位图或标签或其他任何东西,只要它的文本刚刚触及页面边框,而不是文本周围的框架。
  • 查看链接的图像。顶线是我得到的,底线是我想要的。 i1290.photobucket.com/albums/b522/xenovel/lines.png

标签: wpf maximize


【解决方案1】:

已编辑:您应该将文本框设置为边框的子级,设置边距,然后旋转边框(而不是文本框)。(参见 cmets);

<Window ....
    Height="600"
    Width="400">
<Grid>
    <Viewbox 
             HorizontalAlignment="Stretch"
             VerticalAlignment="Stretch">
       <Border Background="AliceBlue">
            <TextBox AcceptsReturn="True"
                     Margin="-4"
                     BorderThickness="0"
                     Background="Transparent">

                <TextBox.Text>
                    First line and more and more ansd
                </TextBox.Text>
            </TextBox>
            <Border.LayoutTransform>
                <RotateTransform Angle="-35" />
            </Border.LayoutTransform>
        </Border>
    </Viewbox>
</Grid>
</Window>

【讨论】:

  • 是的,我已经尝试过了,但是根据文本的长度(以及字体的大小),文本将在页面边界之外作为文字越来越小。
  • 好的,我编辑了我的答案。我认为您应该将文本框设置为边框的子级,设置边距,然后旋转边框(而不是文本框)。 (使用边框的背景颜色,正确设置边距)
  • 这种方式比我迄今为止所做的要好得多,但还不够。仍然需要最左边的像素与最右边的边缘一样远。现在对于大多数文本来说看起来都不错,但是有些字母很不适合。就像文本“A j”将“j”非常靠近右侧,但“A”远离左侧
  • 当 text="Aj" 我可以通过 Margin="-4,-6.1,-4.8,-2" 得到最好的。如果定位取决于先发生的事情和......,也许你应该有问题地处理它们。我的意思是处理 TextChanged 事件。
  • 所以我想没有简单的方法可以做到这一点。要么我必须处理我的文本不会以我想要的方式居中的事实,要么我必须为每个第一个和最后一个字母进行编程。太糟糕了......是否可以创建一个透明图像,然后遍历每个像素并裁剪图像以获取不透明的第一个/最后一个像素?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
相关资源
最近更新 更多