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 因此,您需要: 创建格式文本 从中建立几何 提取边界框 将您的消息框调整为此框大小     

要回复问题请先登录注册