WPF Button 文本尽可能换行,然后滚动

Posted

技术标签:

【中文标题】WPF Button 文本尽可能换行,然后滚动【英文标题】:WPF Button text wrap as far as possible and then scroll 【发布时间】:2010-07-24 16:44:52 【问题描述】:

随着其容器的宽度缩小,我试图让 Button 1 将其文本换行,直到它不再这样做,此时水平滚动条启动。现在,该按钮认识到它有足够的空间由于滚动查看器,根本不换行。

按钮> 网格>

有什么想法吗?

【问题讨论】:

这是我对代码的期望。除非您在网格或文本块上设置宽度,否则它将尽可能宽。 @ChrisF - 我同意。这也是我对上述代码的期望。我很快写了这个,然后想,好吧,我要在 TextBlock 中添加一些附加的行为。然后我想,也许我应该在 SO 上发布这个来获得一些反馈,然后再深入测量。 这一切都将取决于您首先希望文本在哪里换行。每个字之后? 10个字之后? 【参考方案1】:

你去吧:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
     </Grid.ColumnDefinitions>
     <WrapPanel>
         <Button>
             <TextBlock Text="Button 1 - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." 
                        TextWrapping="Wrap" />
         </Button>
     </WrapPanel>
     <Button Content="Button 2" Grid.Column="1" />
</Grid>

【讨论】:

以上是关于WPF Button 文本尽可能换行,然后滚动的主要内容,如果未能解决你的问题,请参考以下文章

WPF:带有 WrapPanel 的 ListBox,垂直滚动问题

WPF 按钮文本换行样式

C#/WPF:禁用 RichTextBox 的文本换行

dotnet 读 WPF 源代码笔记 简单聊聊文本布局换行逻辑

WPF listbox 水平方向的左右滚动条用两个button代替,请问这个button事件怎么写?最好能给我个demo。

是否可以使文本在边框内换行? WPF