您好我正在尝试实现MessageBox调整大小行为,具体取决于我在WPF中构建的自定义DialogBox中的Text(不是标题)字符串的大小。这是我的自定义MessageBox,其中包含我的应用程序的布局。
但MessageBox如何依赖于字符串的大小,MessageBox的高度会自动增长?怎么做?
提前致谢!
答案 0 :(得分:3)
这就是我通常这样做的方式:
<Window SizeToContent="WidthAndHeight" ResizeMode="NoResize" ...>
此外,您可以将ScrollViewer
作为窗口的子项并设置MaxHeight
&amp;窗口上的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>
答案 1 :(得分:0)
在WPF中,您通常使用FormattedText类来微调文本。
如果我做对了你需要的是BuildGeometry方法:
http://msdn.microsoft.com/en-us/library/system.windows.media.formattedtext.buildgeometry.aspx
所以你需要: