首页 > 解决方案 > 设置窗口大小以适应内容,但阻止窗口宽度超出屏幕宽度

问题描述

我想在 Visual Studio中创建一种类似于Overloads 窗口的弹出窗口。就像 Overloads 窗口一样,它几乎可以在屏幕上的任何位置弹出。

我有一个Window有子TextBlock控件的。通过将其属性设置为Window来根据大小更改其大小。如果太长,则将其宽度调整为超出屏幕宽度,从而导致部分可见。我想在它到达屏幕末尾时换行,可以这么说。TextBlockSizeToContentWidthAndHeightTextBlock TextWindowWindowText

我尝试将TextBlock TextWrapping属性设置Wrap为希望阻止这种行为,但由于设置了属性,它没有帮助SizeToContent。有什么建议/解决方法吗?

谢谢你的帮助!

标签: c#wpf

解决方案


您可以将MaxWidth窗口的属性设置为屏幕的宽度,例如:

TextBlock text = new TextBlock()
{
    Text = "some very long string...",
    TextWrapping = TextWrapping.Wrap
};
Window window = new Window()
{
    SizeToContent = SizeToContent.WidthAndHeight,
    Content = text,
    MaxWidth = System.Windows.SystemParameters.PrimaryScreenWidth
};
window.Show();

如何在 WPF 中获取当前屏幕的大小?


推荐阅读