如何解决MessageBox调整大小的行为取决于Text字符串的大小
|| 嗨,我试图根据我在WPF中构建的自定义对话框中Text(而非标题)字符串的大小来实现MessageBox大小调整行为。这是我自定义的MessageBox,其中包含应用程序的布局。 但是MessageBox如何根据字符串的大小自动增加高度呢?怎么做? 提前致谢!解决方法
这就是我通常这样做的方式:
<Window SizeToContent=\"WidthAndHeight\" ResizeMode=\"NoResize\" ...>
另外,您可以将ѭ1作为窗口的子项,并在窗口上设置MaxHeight
和MaxWidth
属性以进一步限制它。
编辑:给出一个窗口可能看起来像的谨慎示例:
<Window
xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"
SizeToContent=\"WidthAndHeight\"
ResizeMode=\"NoResize\" MaxWidth=\"400\" MaxHeight=\"400\">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height=\"Auto\"/>
</Grid.RowDefinitions>
<Grid.Children>
<FlowDocumentScrollViewer ScrollViewer.VerticalScrollBarVisibility=\"Auto\">
<FlowDocument>
<Paragraph>
<Run Text=\"{Binding DisplayText}\"/>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
<StackPanel Grid.Row=\"1\">
<!-- Buttons -->
</StackPanel>
</Grid.Children>
</Grid>
</Window>
,在WPF中,通常使用FormattedText类微调文本。
如果我做对了,您确切需要的是BuildGeometry方法:
http://msdn.microsoft.com/zh-CN/library/system.windows.media.formattedtext.buildgeometry.aspx
因此,您需要:
创建格式文本
从中建立几何
提取边界框
将您的消息框调整为此框大小
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。